[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Combine ascii and binary format (i.e. formatted and unformatted)




"Vince Hradil" <hradilv@yahoo.com> writes:

> Won't this work?
[ see below ]

I think it won't.  The point was that the first number, myInteger, was
printed with formatted I/O, while the data itself was unformatted
binary.

In this situation I believe it's best to dispense with format
statements and do it the hard way.  Formatted I/O leaves the file
pointer in an unpredictable position (*before* or *after* the space?),
and there's no efficiency lost when you're reading a few characters.

My suggestion:

myInteger = 0
myBlank = 0B
myArray = dblarr(sizeOfMyArray)

openr, lun, 'filename', /get_lun
readf, lun, myInteger   ;; Formatted I/O
point_lun, lun, 0L
repeat readu, lun, myBlank until string(myBlank) EQ ' '  ;; Skip past space
readu, lun, myArray     ;; Unformatted I/O
free_lun, lun

This is the first time I have ever used "repeat" by the way.

Craig


> 
> myInteger = 0
> myBlank = 0B
> myArray = dblarr(sizeOfMyArray)
> 
> openr, lun, 'filename', /get_lun
> readu, lun, myInteger
> readu, lun, myBlank
> readu, lun, myArray
> close, lun
> 
> "Nicolas Decoster" <Nicolas.Decoster@Noveltis.fr> wrote in message
> news:38F74DBF.AEDC4EC@Noveltis.fr...
> > Hi !
> >
> > I have (once again) a newbie question.
> >
> > I need to read files I created using C. They have the following format:
> > an ascii integer, followed by a blank space followed (with no new line)
> > by a binary array of double. In C, these files are created like that:
> >
> > fprintf(fileID, "%d ", myInteger);
> > fwrite(myArray, sizeof(double), sizeOfMyArray, fileID);
> >
> > Does someone know how I can read such files with IDL ? I tried, but I
> > can't figure how to specify the format string to read my integer, the
> > space after it and nothing else, so that I can get my array with a
> > simple readu.
> >
> > Thanks for any help.
> >
> > Nicolas.
> >
> > --
> > TÚl. : 00 (33) 5 62 88 11 16
> > Fax  : 00 (33) 5 62 88 11 12
> > Nicolas.Decoster@Noveltis.fr
> >
> > Noveltis
> > Parc Technologique du Canal
> > 2, avenue de l'Europe
> > 31520 Ramonville Saint Agne - France
> 
> 

-- 
--------------------------------------------------------------------------
Craig B. Markwardt, Ph.D.         EMAIL:    craigmnet@cow.physics.wisc.edu
Astrophysics, IDL, Finance, Derivatives | Remove "net" for better response
--------------------------------------------------------------------------