Data records should be easily identified. Each record type in the file should be easily identified from the others. Using the first field as an indicator works well.

I've worked with data similar to what you are talking about many times, and I cannot stress how important this is. Between record version type, this should change as well. You can tie this in to specific record related information like what the delimiters are, or record length.

Record labels accomplishe 1 key thing that trumps everything else you have said: You can write a parser for a single record w/o trampling over other record types. Without this, you will have no way to determine when data starts or ends between records. You would have to write some complex code to figure out record delimiters which may or may not be consistent.

It gets ugly fast, especially if someone creates a new record format w/o telling you.

----
Give me strength for today.. I will not talk it away.. Just for a moment..
It will burn through the clouds.. and shine down on me.


In reply to Re: Thoughts on designing a file format. by exussum0
in thread Thoughts on designing a file format. by demerphq

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.