in reply to Re^3: Reading binary file in perl having records of different length
in thread Reading binary file in perl having records of different length
The algorithm can be modified to handle bad "length" values by adding some logic in the place where it currently dies. If you find a bad record, you could rewind to the last known "good" position via tell and seek and look for the next "==" (an alternative might be to implement your own buffer to look around in, but read should already be buffered). Similar logic would allow you to find "==" that are not aligned properly - the example above doesn't handle the case of the file starting with "x==". (Yet another approach is to read the file byte-by-byte instead of every two bytes - then you would extend your states and have "expect_first_equals", "expect_second_equals", "expect_first_length_byte", and "expect_second_length_byte".)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: Reading binary file in perl having records of different length
by jaypal (Beadle) on Jun 17, 2014 at 15:43 UTC |