in reply to Re^2: Reading binary file is not accurate ?
in thread Reading binary file is not accurate ?
The first method I described--read the entire block, and then extract the header, records and trailer from it--would look something like this:
while( read DATA, $data, BLOCKLEN ) { ## Extract the header from the front of the block my $header = substr $data, 0, BLOCKHDR, ''; ## do stuff with $header for my $cdr ( 1 .. MAXRECORD ) { ## Extract each record in turn from $data my $record = substr $data, 0, CDRLEN, ''; ## do stuff with $record } my $trailer = $data; ## Anything left in $data should be your trai +ler. ## do something with it. }
The second method I described might be done something like this:
until( eof DATA ) { read DATA, my $header, BLOCKHDR or die; ## Do stuff with $header; for my $cdr ( 1 .. MAXRECORD ) { read DATA, my $record, CDRLEN or die; ## Do stuff with $record } read DATA, my $trailer, BLOCKTRL or die; ## Do stuff with $trailer }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Reading binary file is not accurate ?
by Anonymous Monk on May 04, 2010 at 02:42 UTC | |
by BrowserUk (Patriarch) on May 04, 2010 at 04:14 UTC |