comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » writeu, printf, readu/f 2 file
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
writeu, printf, readu/f 2 file [message #24139] Tue, 13 March 2001 07:56
Sean Heukels is currently offline  Sean Heukels
Messages: 25
Registered: November 1999
Junior Member
Can writeu, and printf be combined ?? in one write action.
Or is it the one or the other ?
I've been trying everything. The whole day and it still doesn't work.

What I want to do is write some txt and variables, that define
the following data block and ofcourse the time and location, etc
In the header. But somehow, the firt line reads fine, but after that
everything is garbled.
I think it has something to do with the different write/read statements

See sample code that is not working

I save a file with :

PRO SAVE_FILE, img, struct, outfile
if (NOT KEYWORD_SET(outfile) OR (outfile eq '')) then RETURN
if (NOT KEYWORD_SET(img)) then MESSAGE, 'Structure must be added :img'
if (NOT(STRMID(outfile, STRLEN(outfile)-3, 3) eq 'dif')) then
outfile=outfile+'.dif'

temp=string(systime())

tiepe = "dif";
versie = 1.0;
HEADERSTRUCT = {HEADERSTRUCT, filename:struct.filename, file:struct.file,
description:struct.description, date:temp, Location:"Invivonmr Utrecht"}
TXTSTRUCT = {TXTSTRUCT, orient:struct.orient, view:struct.view,
plot:struct.plot}
VARSTRUCT = {VARSTRUCT, ft:struct.ft, lro:struct.lro, lpe:struct.lpe,
te:struct.te, tr:struct.tr, ti:struct.ti, nro:struct.nro, npe:struct.npe, $
ns:struct.ns, nt:struct.nt, zf:struct.zf, zff_nro:struct.zff_nro,
zff_npe:struct.zff_npe, pss:struct.pss, thk:struct.thk, raw:struct.raw}

openw, unit, outfile, /get_lun ; Open file
point_lun, unit, 0L
; Point it at the start
printf, unit, tiepe
printf, unit, HEADERSTRUCT

printf, unit, versie
printf, unit, TXTSTRUCT
printf, unit, VARSTRUCT

for slice=0, struct.ns-1 do begin ; Slice loop
for tp=0, struct.nt-1 do begin ; Time-point loop
for np=0,struct.npe-1 do begin ; Multi-slice loop
writeu, unit, struct.data(*, np, tp, slice) ; Write the block header
endfor
endfor
endfor

free_lun, unit

UNDEFINE, TYPE
UNDEFINE, VERSION
UNDEFINE, HEADERSTRUCT
UNDEFINE, TXTSTRUCT
UNDEFINE, VARSTRUCT

struct.raw=0
img.saved=1
img.filename=outfile
RETURN
END



AND READ WITH :

PRO READ_FILE, img, struct, infile
if (NOT KEYWORD_SET(infile) OR (infile eq '')) then RETURN
if (NOT KEYWORD_SET(img)) then MESSAGE, 'Structure must be added :img'

tiepe = ''
versie = 0.0
HEADERSTRUCT = {HEADERSTRUCT, filename:'', file:'', description:'', date:'',
Location:''}
TXTSTRUCT = {TXTSTRUCT, orient:'', view:'', plot:''}
VARSTRUCT = {VARSTRUCT, ft:0, lro:0.0, lpe:0.0, te:0.0, tr:0.0, ti:0.0,
nro:0, npe:0, ns:0, nt:0, zf:0, zff_nro:0, zff_npe:0, pss:0.0, thk:0.0,
raw:0}

openr, unit, infile, /get_lun
point_lun, unit, 0L

readf, unit, tiepe
readf, unit, HEADERSTRUCT
readf, unit, versie

if (NOT (tiepe eq 'dif')) then begin
img.error='Sorry, only .dif files can be opened. .fids must be imported'
free_lun, unit
RETURN
endif
if (versie gt 1.0) then begin
img.error='File version exceeds this modules read capatibilty.
Version:'+format(TYPE)
free_lun, unit
RETURN
ENDIF

help, tiepe, versie
help, HEADERSTRUCT, /st

readf, unit, TXTSTRUCT
readf, unit, VARSTRUCT

NEW_FID, struct, VARSTRUCT.nro, VARSTRUCT.npe, VARSTRUCT.nt, VARSTRUCT.ns

all_tags = TAG_NAMES(HEADERSTRUCT)
for w=0, N_ELEMENTS(all_tags)-1 do begin
if (all_tags[w] ne 'data') then struct.(w) = HEADERSTRUCT.(w)
endfor
all_tags = TAG_NAMES(TXTSTRUCT)
for w=0, N_ELEMENTS(all_tags)-1 do begin
if (all_tags[w] ne 'data') then struct.(w) = TXTSTRUCT.(w)
endfor
all_tags = TAG_NAMES(HEADERSTRUCT)
for w=0, N_ELEMENTS(all_tags)-1 do begin
if (all_tags[w] ne 'data') then struct.(w) = VARSTRUCT.(w)
endfor

for slice=0, struct.ns-1 do begin ; Slice loop
for tp=0, struct.nt-1 do begin ; Time-point loop
for np=0,struct.npe-1 do begin ; Multi-slice loop
readu, unit, struct.data(*, np, tp, slice); Write the block header
endfor
endfor
endfor

free_lun, unit

img.filename=infile ; Set for the img structure
img.slice=1
img.timepoint=1
img.saved=1
END



BUt its not working







Any help appreciated


greets Sean
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Re: Whats up in opening files: Unix vs. Windows
Next Topic: Re: Open file in 5.4

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 16:51:37 PDT 2025

Total time taken to generate the page: 0.00420 seconds