I keep seeing this kind of attitude from some commentors:
So, as a naive C++ native speaker who was still in kindergarten when the Apple ][ came out, I'm having trouble grokking the problem here. If I wanted to parse, say, a block of data in memory, I'd either a) read the size, then read [size] bytes of data, or b) read data until I hit a predefined delimiter. If the cards have a sequence number, the only way to miss one without noticing is if the one she tossed was the last one. But in that case, either a) there's not enough data to meet the stated size, or b) she'd have thrown out the card with the delimiter. Or were programmers back then so stupid they just read until people stopped feeding in cards?
"So stupid"?
People with that attitude really don't understand the history of the technology they're working with.
Simply put, when you're running a batch of punch cards to input data, there is no need for delimiters. It's actually that simple: just input data until you run out of records. In fact, it's probable that the machine they were using was a tabulator: its only function was to read the data on each punch card and input it into the mainframe.
This is the second time in a week that I've felt the need to make this kind of comment. The young'uns don't know how good they have it.