At 04:58 PM 8/15/01 -0600, Tyler Cruickshank wrote:
>Hello.  Im still struggling with converting a binary file to an ascii 
>file.  I just dont understand how to use seek and unpack.  I understand 
>that one needs to know the format of the binary file, therefore, I have 
>pasted below FORTRAN code that reads the ascii file and writes a binary 
>file.  The files I work with are typically meteorological files full of 
>numbers (and short headers) that need to be averaged or interpolated etc.. 
>I just need to do it in perl.  In FORTRAN, the ascii file is simply read 
>(with a known format ie. 2100) and written to an unformatted binary 
>file.  In this example, the code "knows" the format (or the elements of 
>each record) of the ascii file.
>
>My goal is to be able to:
>
>1) convert a binary file to ascii and
>2) to read and manipulate (or use) a binary file on the fly (w/o using the 
>FORTAN code).
>
>If anyone else could provide further direction it would be very appreciated.
>
>Thanks, - Tyler Cruickshank
>
>FORTRAN CODE:
>#-----------------------------------------------------------------------------
>OPEN (5,FILE=File.ascii)
>OPEN (9,FORM='UNFORMATTED',FILE=File.binary)
>
>READ(5,2100)IFILE, NOTE,NSEG, NSPECS, IDATE, BEGTIM, JDATE, ENDTIM
>WRITE(9)IFILE,NOTE,NSEG,NSPECS,IDATE,BEGTIM,JDATE,ENDTIM
>
>READ(5,2001) ORGX, ORGY, IZONE, UTMX, UTMY, DELTAX, DELTAY,  NX, NY, NZ, 
>NZLOWR, NZUPPR, HTSUR, HTLOW, HTUPP
>WRITE(9)  ORGX,ORGY,IZONE,UTMX,UTMY,DELTAX,DELTAY,NX,NY, 
>NZ,NZLOWR,NZUPPR,HTSUR,HTLOW,HTUPP
>
>READ(5,1002) IX, IY, NXCLL, NYCLL
>WRITE(9)IX,IY,NXCLL,NYCLL
>
>    READ(5,1003) ((MSPEC(M,L),M=1,10),L=1,NSPECS)
>10 IBHR=BEGTIM + 1
>    IEHR=ENDTIM
>    WRITE (9)((MSPEC(I,J),I=1,10),J=1,NSPECS)
>
>
>2100 FORMAT(10A1,60A1,/,I2,1X,I2,1X,I6,F6.0,I6,F6.0)

I can't resist a program with the variable name 'ORGY' :-)

I know less about unpack() than I would like.  Therefore I would be willing 
to debug this one with you if you can point me to a sample binary file and 
expected results.

On the face of it, I would say that these unpack templates would be heading 
in the right direction:

         I5dId
         I3d4I5d3
         I4

But you don't show your variable declarations and I can't remember whether 
'H' is implicit integer.

--
Peter Scott
Pacific Systems Design Technologies
http://www.perldebugged.com


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to