Walter, it's a long time since I looked but we used to read giant HL7 messages into a cursor delimited on the | character. We had fields f1,f2...fn for the maximum number of segments, then we had a series of #DEFINEs for each of the message segment types to read the relevant values out of the appropriate column and convert it to a date or numeral or whatever. It was very quick and easy to maintain as I recall. How do you do it?
"... They ne'er cared for us
yet: suffer us to famish, and their store-houses
crammed with grain; make edicts for usury, to
support usurers; repeal daily any wholesome act
established against the rich, and provide more
piercing statutes daily, to chain up and restrain
the poor. If the wars eat us not up, they will; and
there's all the love they bear us."
-- Shakespeare: Coriolanus, Act 1, scene 1