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

Re: Problems reading binary files - pointer at 4096 gives EOF

David Fanning <davidf@dfanning.com> wrote in message
> Oliver Smith (osmith@dera.gov.uk) writes:
> > I'm working on a program which loads data from a structured binary file.
> > Each
> > file contains many sets of different data types, each data field is
> > preceeded by a header(int) and fieldlength (long) before the data
> > In order to read the files, I use a WHILE NOT EOF(file) loop as there is
> > indication of the last field in the file. I've hit a major problem with
> > this, the EOF test reports end of file whenever the file pointer is at
> Yikes! And I find the same problem in IDL 5.1, IDL 5.2.1, and IDL 5.3.1.
> I even find it if I use FSTAT to report the file pointer position.
> Please let us know what you find out, Oliver.

A simple test case worked fine for me in IDL 5.3 / Windows98:

IDL Version 5.3 (Win32 x86). (c) 1999, Research Systems, Inc.

IDL> openw, 1, 'zzz.dat' & writeu, 1, bytarr(16384) & close, 1
IDL> openr, lun, 'zzz.dat', /get_lun
IDL> point_lun, lun, 4096L
IDL> print, eof(lun)
IDL> info = fstat(lun)
IDL> print, info.cur_ptr

Am I missing something?

PS: You might want to check out my binread and binwrite programs for reading
and writing binary data: