Thanks for the advice everyone. It is very much appreciated. I have been working on a combination of ideas here. Currently I am doing an MD5sum of a string created from all my variables concatenated together and writing that as the second to the last line of the file, I also am writing some fixed text at the beginning and end of the file as suggested so I can check for variables being overwritten in memory, great idea! I am then reading the file back to verify it has written properly, making a backup, checking that, and also using ioresults as below. I will probably rename the file as well, and exclude it from virus checkers. When I read the file I can verify the MD5sum and if that test fails, I'll just automatically try the backup, If that also fails the MD5sum I'll notify the user.
Thanks again for all the help James -----Original Message----- From: fpc-pascal-boun...@lists.freepascal.org [mailto:fpc-pascal-boun...@lists.freepascal.org] On Behalf Of Klaus Hartnegg Sent: Thursday, February 23, 2017 6:33 AM To: fpc-pascal@lists.freepascal.org Subject: Re: [fpc-pascal] FreePascal Windows - Force files to write to disk Am 21.02.2017 um 22:12 schrieb James Richters: > Assign(BitFile,'BitSave.pax'); {$I-} > ReWrite(BitFile); if ioresult <> 0 then writeln ('error opening pax file'); > WriteLn(BitFile,XADJ:1:8); > WriteLn(BitFile,YADJ:1:8); > WriteLn(BitFile,ZADJ:1:8); > WriteLn(BitFile,WADJ:1:8); > WriteLn(BitFile,AADJ:1:8); > WriteLn(BitFile,TADJ:1:8); > WriteLn(BitFile,VADJ:1:8); > WriteLn(BitFile,UADJ:1:8); > WriteLn(BitFile,CurrentTool); > WriteLn(Bitfile,P_Value[4]); writeln (bitfile, 'EOF'); if ioresult <> 0 then writeln ('error writing pax file'); > Close(BitFile); if ioresult <> 0 then writeln ('error closing pax file'); {$I+} This writes something at the end of the file that does not come from a variable. Next time the error happens, you can check if that is present. Then your variables were overwritten in memory. Also it checks for errors. And I would disable antivirus or at least tell it to not scan this file. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal