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

Home » Public Forums » archive » Re: Reading tab delimited string data
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: Reading tab delimited string data [message #21985] Fri, 13 October 2000 00:00
Ivan Zimine is currently offline  Ivan Zimine
Messages: 40
Registered: February 1999
Member
Andy Loughe wrote:
>
> Hello,
>
> I have some output from a MySQL dump that looks like this...
>
> id date height coverage yy yn ny nn
> 1388 2000-07-01 all all 114 404 240 28452
> 1388 2000-07-01 all low 114 404 240 28452
> 1388 2000-07-01 high all 114 404 240 28452
> 1388 2000-07-01 all all 114 404 240 28452
>
> I get the data into IDL via this command...
>
> spawn, 'mysql < sql_script.sql', data
> IDL> help, data
> DATA STRING = Array[5] ; 5 rows of string data (tabs inserted).
>
> Basically, I am working with tab delimited data with a varying number
> of columns and a varying number of rows, depending upon the sql query.
>
> I am able to store the data from each column into a separate IDL vector,
> id=[ ] date=[ ] height=[ ] , etc. but the approach is to LOOP
> through all rows, do a str_sep(row, string(9B)), and then direct the
> result into the proper index of the IDL vector.
>
> Looping through all the rows and manipulating each line of string data
> can't be the fastest approach. Can someone suggest a faster method?
>
> I thought of ASSOC, and also wondered about str_sep on arrays,
> or maybe some of the new str routines. Any thoughts?
>
> Your kind suggestions are appreciated.
>

Just a thought...
If you have many rows and not so many cols make MySQL do the work
IDL> spawn, 'mysql < get_id.sql', id
IDL> spawn, 'mysql < get_date.sql', date
...

--
Ivan Zimine | ivan.zimine@physics.unige.ch
Dpt. of Radiology | (+41 22) 372 70 70
Geneva University Hospitals |
Re: Reading tab delimited string data [message #21987 is a reply to message #21985] Fri, 13 October 2000 00:00 Go to previous message
Martin Schultz is currently offline  Martin Schultz
Messages: 515
Registered: August 1997
Senior Member
Andy Loughe wrote:
>
> Hello,
>
> I have some output from a MySQL dump that looks like this...
>
> id date height coverage yy yn ny nn
> 1388 2000-07-01 all all 114 404 240 28452
> 1388 2000-07-01 all low 114 404 240 28452
> 1388 2000-07-01 high all 114 404 240 28452
> 1388 2000-07-01 all all 114 404 240 28452
>
> I get the data into IDL via this command...
>
> spawn, 'mysql < sql_script.sql', data
> IDL> help, data
> DATA STRING = Array ; 5 rows of string data (tabs inserted).
>
> Basically, I am working with tab delimited data with a varying number
> of columns and a varying number of rows, depending upon the sql query.
>
> I am able to store the data from each column into a separate IDL vector,
> id=[ ] date=[ ] height=[ ] , etc. but the approach is to LOOP
> through all rows, do a str_sep(row, string(9B)), and then direct the
> result into the proper index of the IDL vector.
>
> Looping through all the rows and manipulating each line of string data
> can't be the fastest approach. Can someone suggest a faster method?
>
> I thought of ASSOC, and also wondered about str_sep on arrays,
> or maybe some of the new str routines. Any thoughts?
>
> Your kind suggestions are appreciated.
>
> --
> Andrew Loughe =====================================================
> NOAA/OAR/FSL/AD R/FS5 | email: loughe@fsl.noaa.gov
> 325 Broadway | wwweb: www-ad.fsl.noaa.gov/users/loughe
> Boulder, CO 80305-3328 | phone: 303-497-6211 fax: 303-497-6301


off the top of my head I can only think of using structures. You can
dynamically create a template structure (just as you set up your
column vectors) with Create_Struct, e.g. template =
Create_Struct(id:0L, 'date','', 'height','', 'coverage','', $
'yy',0L, 'yn',0L, 'ny',0L, 'nn',0L )

Then you have two options:
(1) if you don't know the number of rows coming out of your query
(well, this applies more to results stored in a file), you can either
use a linecount program and use approach 2 afterwards, or you still
loop line by line and use a "block data" technique to enlarge your
structure array by e.g. 100 elements at a time.

(2) if you know how many lines to expect, you should be able to "read"
your data as
result = replicate(template, 5)
reads, data, result

Hope this helps,
Martin

--
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ [[[[[[[
[[ Dr. Martin Schultz Max-Planck-Institut fuer Meteorologie [[
[[ Bundesstr. 55, 20146 Hamburg [[
[[ phone: +49 40 41173-308 [[
[[ fax: +49 40 41173-298 [[
[[ martin.schultz@dkrz.de [[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ [[[[[[[
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Re: Problems with IDL call_external to C shared object
Next Topic: Re: obj graphics fly-thru help

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

Current Time: Wed Oct 08 18:14:05 PDT 2025

Total time taken to generate the page: 0.00718 seconds