Not with strings, because your never sure how long the string is, but I'm sure that binary files would work out fine if you were using bytes. Like skipping 200 bytes should be easy with binary access files - but then your probably as well just loading the file into a memblock, then you can grab any part of the memblock right away - like loading the file in as 1 block, then reading the data from it before deleting. I think memblocks are the way to go, as long as your not using strings - if you need strings, then you have to use fixed width strings.
It's like an old database format, like Foxpro, DBase, .DBF files - all the strings in that need to have a fixed length otherwise the file can't be skipped. When loading, it works out the length of each record, with all the fields combined, might be 100 bytes made from a dozen different fields, but that 100 byte length doesn't change. This means the DBF files can be loaded as binary access, and skip to any record required - add in indexed record lists, and you have a fairly efficient database system. Unrestricted string fields, memo's if you like, would be stored in a seperate file and not indexed.
Anyway, I think that you need to establish the record 'footprint' first, what fields and data does each record keep, what data types. With memblocks you could mix things up with integers and floats, because they both use 4 bytes.

Health, Ammo, and bacon and eggs!
