Re: Reading and Plotting big txt. File [message #55117 is a reply to message #55111] |
Wed, 01 August 2007 03:25   |
greg.addr
Messages: 160 Registered: May 2007
|
Senior Member |
|
|
On Aug 1, 11:33 am, "incognito.me" <incognito...@gmx.de> wrote:
> I'm trying to read and plot (surface) a very big text (.txt) file
> (1020, 1024) with a 5 line string Header in IDL. My file looks like a
> circle made of numbers!!!. That means in some lines and colums there
> are no numbers only blanks!!!for example my file contains integers
> between rows 633 and 390 and between columns 650 and 406.At the left
> side of the file, there are the numbers of rows (1023,1022,1021,....0)
> my code should not read, but it does. And I also notice, that my code
> don't begin to read where the data starts!!By running the code I have
> the following error message: READF: End of file encountered. Unit: 1.
> Can someone help me?
> This is how my code looks like
> pro readfile, filename
>
> ; file=strupcase(filename)
> rows=file_lines(file)
> ;open the file and read the five line header.
> openr,1,file
> header=strarr(5)
> readf,1,header
> ; Find the number of columns in the file
> cols=fix(strmid(header(3),14,4))
> ; Number of rows of the data
> rows_data=rows-n_elements(header)
>
> ;Create a big array to hold the data
> data=intarr (cols, rows_data)
> ; All blanks should be replaced by zero
> data[where(data eq ' ')]=0
> ; A small array to read a line
> s=intarr(cols)
> n=0
> while (~ eof(1) and (n lt rows_data -1 )) do begin
> ; Read a line of data
> readf,1,s
> ; Store it in data
> data[*,n]=s
> n=n+1
> end
> data=data[*,0:n-1]
>
> CLOSE,1
> Shade_surf, data
> end
>
> thanks
>
> incognito
I'm suspicious of the line converting blanks to zeros before you've
even read them. I don't think the blanks will come out the way you're
expecting, anyway. I'd suggest you write a program to correctly read
your first line of data before you go for the whole thing.
Greg
|
|
|