[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Whats up in opening files: Unix vs. Windows
- Subject: Whats up in opening files: Unix vs. Windows
- From: "Sean Heukels" <sean77=cuthere=(at)dds.nl>
- Date: Tue, 13 Mar 2001 10:09:16 +0100
- Newsgroups: comp.lang.idl-pvwave
- Organization: Academic Computer Centre Utrecht, (ACCU)
- Xref: news.doit.wisc.edu comp.lang.idl-pvwave:23956
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
lon)
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
imaginery
npe = FIX(READ_PROCPAR('nv', infile)) ; Get number of Phase-encode
points
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
lese?
Thanks Sean