"Does your code assume there is just one header and footer in the file?"
No it does not.
Furthermore, given I put in a fair amount of effort to show the exact input and output, I'm surprised you're asking.
"If not, i am not seeing how it will go from one header/footer segment to another."
That sounds like you didn't even try it.
Did you just have a quick look and decided it wouldn't work?
Changing the lengths from my demo 5 and 3 to your real application requirements of 50 and 30, your sample records (posted below):
HDR.S287878877.DDDDD.DDDDDDXXXXXXXXXXXXXXXXXXXXXXX1STR HYTRES NAME PLA
+CE DEST GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG GGGGGG
+GGGGGGGGGGGGGG1111111111111111111112222222222222222222222222222333333
+333333333333333333333444444444444444444444444444444444455 55555555555
+55555555555555555566666666666666777777777777FTRDDDDDDDDDDFFFFFFFFFFFF
+FFFFF
HDR.S287878877.DDDDD.DDDDDDXXXXXXXXXXXXXXXXXXXXXXX1STR HYTRES NAME PLA
+CE DEST GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG GGGGGG
+GGGGGGGGGGGGGG1111111111111111111112222222222222222222222222222333333
+333333333333333333333444444444444444444444444444444444455 55555555555
+55555555555555555566666666666666777777777777FTRDDDDDDDDDDFFFFFFFFFFFF
+FFFFF
become
1STR HYTRES NAME PLACE DEST GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+GGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGG111111111111111111111222222222222222
+222222222222233333333333333333333333333344444444444444444444444444444
+4444455 5555555555555555555555555555566666666666666777777777777
1STR HYTRES NAME PLACE DEST GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
+GGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGG111111111111111111111222222222222222
+222222222222233333333333333333333333333344444444444444444444444444444
+4444455 5555555555555555555555555555566666666666666777777777777
|