[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Help with reading structure from file



Hello,

I haven't used PV-Wave in a very long time but I do recall the very nice DC_Read*
functions (I might not have the syntax quite right) that were great for reading
column-oriented flat files.  Have you tried those?

Ben

Surendar Jeyadev wrote:

> In the loosing battle with the Excel users, the latest direct hit was reading
> in a file that contained strings and numeric data in each line. Having given
> up (and as the only hold out against Excel!), I need HEEELLLPPP.
>
> This is the simplified problem. I am trying to read data in the following
> format:
>
>     001a  312.194   76.922  296.301   21.462    0.453  289.515    0.957
>     001b  363.748  106.090  506.188   19.430    0.528  347.252    1.176
>     001c  398.248  138.541  724.470   17.152    0.578  383.534    1.701
>     002a  294.593   28.525  248.744    8.532    0.428  290.497    1.268
>     002b  353.415   46.290  449.015    7.974    0.513  349.565    2.011
>     002c  401.279   80.260  661.701    3.341    0.582  395.403    4.529
>     ....
>     ....
>
> i.e. in the format "(4x,a4,7f9.3)". I would like it to go into a 2 dimensional
> structure.
>
> I cannot find a way of reading it as a entire array. At present, all I can
> come up with is
>
>       nsets = 108               ; number of lines of data
>       f1 = "(4x,a4,7f9.3)"
>       a = string(4)
>       y = fltarr(7)
>       dpt = { fullrow, id: ' ', x: fltarr(7) }
>       fulldata = replicate( {fullrow}, nsets)
>
>       openr, 1, 'data'
>       for i=0,nsets-1 do begin
>           readf, 1, format = f1, a, y
>           fulldata(i).id = a
>           fulldata(i).x = y
>       endfor
>       close, 1
>
> Is there any way of avoiding the temporary variables and the loop? I am
> using PV-Wave CL, Ver 6.
> --
>
> Surendar Jeyadev         jeyadev@wrc.xerox.com

--
Ben Tupper
Bigelow Laboratory for Ocean Sciences
180 McKown Point Rd.
W. Boothbay Harbor, ME 04575
btupper@bigelow.org