Nice post. I've learnt too many of these the hard way
with inherited formats. In particular, one format lacked
easily identifiable record types so the a record's
subtype may depend on the first field or the first and
second, the length of the second depending on the first...
Other thoughts:
- Dependency ordered records, that is parents before
their children.
- Count, checksum or hash at the end (I think a
line count gives a false sense of protection from
corruption).
- The two points above make file processing more streamable.
- Consider specifying character encodings.
- Don't be cryptic to save characters, have a plain
text format and zip it.
See also the
Art of Unix Programming