[comp.lang.pascal] File of Record-type problems

rfh3273@galileo.rtn.ca.boeing.com (Dick Harrigill) (05/14/91)

From time to time I am experiencing a corruption of data files
written by TP 5 and/or 6.  The files are declared to be a file
of a record type.  I/O is done with write and read statements
directly into/from a variable of that record type. The record type 
is 25 bytes long and the length of the file is typically 800-900
records (read into an array of that type).
 
I have a 99.99% success rate.  The last .01%, however, is a killer.
The files are simply trashed, containing garbage.  The problem is 
seemingly random, and does not seem to be related to media or disk
type.  I cannot identify a common denominator, but it is not related
to any disk caching program. The file is indeed is trashed, so the error
happens during the write, not read phase.  The file is, however, the 
right/expected length.

The writes are done with {$I-} (I/O error trapping off), but after
each write I check the IOResult for errors.  The error trapping portion
of the code seems to work because obvious errors such as disk full or
write-protect are reported as expected.

Does anybody have a suggestion or comment about what may be happening?

Related question: Is there a good way to do verification during a write?


-- 
Dick Harrigill, an independent voice from:     Boeing Commercial Airplanes 
M/S 9R-49  PO BOX 3707                       Renton Avionics/Flight Systems
Seattle, WA  91824                                  Computing Support
(206) 393-9539     rfh3273@galileo.rtn.ca.boeing.com