in reply to Re: Reading binary file is not accurate ?
in thread Reading binary file is not accurate ?

Hi..
Could you give some example..
  • Comment on Re^2: Reading binary file is not accurate ?

Replies are listed 'Best First'.
Re^3: Reading binary file is not accurate ?
by BrowserUk (Patriarch) on May 03, 2010 at 11:49 UTC

    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 }

    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.
      Hi..

      Thank you very much for your help and now my program working properly.

        You're welcome. Which method did you opt for? Method 1 or method 2? Neither is wrong and both have their merits.