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

Whats up in opening files: Unix vs. Windows

I use this code on a Unix System and it has been working fine for 4 years.

file_header={file_header, nblocks: 0L, ntraces: 0L, np: 0L, ebytes: 0L,
tbytes: 0L, bbytes: 0L, transf: 0, status: 0, spare1: 0L}
data_header={data_header, scale: 0, status: 0, index: 0, spare3: 0, ctcount:
0L, lpval: 0.0, rpval: 0.0, lvl: 0.0, rvl: 0.0}

;----Open the data file
openr, unit, infile, /get_lun    ; Open file
point_lun, unit, 0
readu, unit, file_header     ; Read the file header (only occurs once)

help, file_header, /st
;----Define variables to store data and determine nature of data (int or
nb     = FIX(file_header.nblocks)   ; Total number of data blocks
ns     = FIX(file_header.ntraces)   ; Number of slices
nro    = FIX(file_header.np)/2    ; NUmber of read-out point : Real and
npe    = FIX(READ_PROCPAR('nv', infile))  ; Get number of Phase-encode

if (npe eq 0) then npe = FIX(READ_PROCPAR('ni', infile)) ; or 'ni' for
previous versions
nt     = nb/npe     ; Number of time points, for repeated measurements
----> if (file_header.ebytes eq 2) then temp=intarr(nro*2) else
temp=lonarr(nro*2); Adjust the complex data for Integer or Float form

The only thing is that the header is not read properly. It crashes on
file_header.ebytes, which is set to 0 (0*2=> array size ?? no way)
A piece of what it does read:

** Structure FILE_HEADER, 9 tags, length=32:
   NBLOCKS         LONG           3276800
   NTRACES         LONG          16777216

Should be more like 164 and 220.
Is there a differnce in 0L in Windows and Unix ?? Or structures, or anything

Thanks Sean