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

Home » Public Forums » archive » Re: Input line too long???
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
Re: Input line too long??? [message #20676] Wed, 19 July 2000 00:00
promashkin is currently offline  promashkin
Messages: 169
Registered: December 1999
Senior Member
Hi David,
I played with your example and I think I have a solution. The input
buffer limitation is only in effect if you read formatted. I made a file
by repeating your example line 2000 times, obtaining 10000 element line.
Each record in your line is 8 bytes long, including a space. Try reading
unformatted and it works perfectly:

; Make fake data file with 1 line
; with 10000 data entries and open it.
openr, unit, 'test.txt', /get_lun
; Since you know the number of data points, make X:
x = strarr(10000)
; Fill X with 8 byte strings.
x[*] = '12345678'
readu, unit, x

Now you can convert X into float and use it.
Cheers,
Pavel

David Bowman wrote:
>
> Greetings all,
>
> I have a data file that essentially contains a very long vector of
> floating point numbers. The file (written by a trusty old FORTRAN
> program) gives the number of elements in the record on the first line.
> The second line contains all the data, with each element separated by
> two spaces. For example:
>
> .123348 .126664 .130130 .133735 .137486 and so on.
>
> Now in the past I've read this data with no problem simply using
>
> x=fltarr(n)
> readf,1,x,format='(nF0)'
>
> where n is the number of elements in the vector. However, I've
> recently tried to read in a much larger vector, and IDL chokes, saying:
>
> % Input line is too long for input buffer of 32767 characters.
>
> The datafile in question contains 5856 elements (five of which are in
> my little example above). All told, there are 55278 characters in the
> line in question.
>
> Nothing I've tried works... Reading in elements by element, with
> formatting, without formatting... I've even tried using the BUFSIZE
> keyword to OPEN, with no result. The IDL help says that I'm limited to
> reading in files smaller than 2^31 bytes, but I'm certainly well below
> that.
>
> I'd love to simply rewrite the I/O section of the program that made the
> file to begin with, but I didn't write it and I don't have the source
> code.
>
> Any Ideas? I'm using version 5.3 on a Mac G3 with 128 Mb RAM.
>
> Thanks in advance...
> David
>
> --
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =-=-=-=-=-=-=-=-=
> David Bowman "Smash forehead on keyboard to continue."
> Laboratoire Tectonique
> Institut de Physique du Globe - Paris
> 4 Place Jussieu
> 75252 Paris Cedex 05
> France
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Some sort of NULL value in IDL ?
Next Topic: Re: Unix->Mac transition

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

Current Time: Wed Oct 08 11:36:24 PDT 2025

Total time taken to generate the page: 0.00503 seconds