Gotcha,
I've had good success with fixed length and things like you describe. One thing to keep in mind is, your fixed lengths always get parsed for a given line in the file. You can use that to your advantage by doing pattern matching on the fields. This allows creating fields that parse the upper (or lower) parts of the report, and then the comments section. If they exist in the report, include field lables in the parsed fields so you can do things like:
If d("field…") like "Account:*" then you know you have parsed the Account field.
You can do the same thing to find when your comments fields start and end:
If d("field…") like "*Comments*" then NextRowWillHaveComments=True….
That sort of thing.
Good luck I envy you having this project!
I've always liked data parsing for some reason – call me strange 🙂