On Mar 15, 4:07 pm, Vince Hradil <hrad...@[EMAIL PROTECTED]
> wrote:
> On Mar 15, 3:53 pm, Raghu <raghuram.narasim...@[EMAIL PROTECTED]
> wrote:
>
> > Hi,
>
> > With reference to my recent posting (IDL batch indexing), i understood
> > that i could structures. However, i haven't been able to figure out
> > one step.
>
> > Here is my code as of now:
> > ; I want to search for all the images(files) in the directory trials,
> > read them into the structure named data, and access each file within
> > the structure.
>
> > pro strcutres
> > dir1='D:\trials'
> > cd,dir1
> > files=FILE_SEARCH('*[^\.{hdr}]', /QUOTE,count=numfiles)
> > i=0
> > while i lt numfiles do begin
> > named=files(i)
> > print,named
> > data={ID:'a',sizes:fltarr(2179,761)}
> > data=replicate(data,numfiles)
> > data.sizes=findgen(numfiles)
> > openr,1,named
> > readu,1,data[i].sizes
> > close,1
> > i=i+1
> > endwhile
> > end
>
> > ERROR message- READU: Expression must be named variable in this
> > context: <FLOAT Array[2179, 761]>.
>
> > I am getting the error here because it seems like i am not able to
> > read in the LUN 1 or named, into data[i].sizes.
>
> > Where am i going wrong ?
>
> > Raghu
>
> Hoo boy - here you go.
>
> 1-Yes, you need to use a named variable to readu
> 2-You already defined "sizes" (weird name, by the way, how about
> "values"), when you made the structure.
>
> How about this:
>
> pro strcutres
> dir1='D:\trials'
> cd,dir1
> files=FILE_SEARCH('*[^\.{hdr}]', /QUOTE,count=numfiles)
>
> data={ID:'a',values:fltarr(2179,761)}
> data=replicate(data,numfiles)
> tempval = fltarr(2179,761)
>
> for i=0L, numfiles-1 do begin
> named=files(i)
> print,named
>
> openr,1,named
> readu,1,tempval
> free_lun,1
> data[i].values = tempval
>
> endfor
>
> return
> end
BTW - why do you want to use a structure again? The above code makes
all the data.id's = 'a'.
Why can't you just read the data into a matrix? If you want the
structure to contain the filename then add data[i].id = named inside
the loop.


|