Re: Extracting strings from an array [message #38314 is a reply to message #38220] |
Sun, 29 February 2004 08:38  |
jcdmesq
Messages: 2 Registered: February 2004
|
Junior Member |
|
|
Dear Craig,
These two lines solved my problem, I can extract all the values I want
from the string!
Thanks a lot,
Lin
Sao Paulo/Brazil
Craig Markwardt <craigmnet@REMOVEcow.physics.wisc.edu> wrote in message news:<onllmnpso5.fsf@cow.physics.wisc.edu>...
> jcdmesq@hotmail.com (Lin) writes:
>
>
>> Hi folks, I need some help!! I'm not familiar to IDL.
>>
>> I have an array and I must extract some elements from it. The elements
>> I need to extract are always after a name. As an example I have the
>> array:
>>
>> x1024 y1024 lat-22.500000 lon-49.500000 range10.000000
>>
>> The elements I need to extract are 1024, 1024, -22.5, -49.5 and
>> 10.0000. They are always after x, y, lat, lon and range.
>>
>> How can I do to extract them?? I need some like: "get nn after xx"...
>
> Probably the best tool for the job is Perl. Text processing is its
> forte.
>
> IDL does have regular expression matching, which may be enough for
> you. I've never used it myself (I just go right to the Perl).
>
> Beyond that, you can do things like use STRPOS to locate the strings
> of interest. Then you add an offset to pull out the value you need.
>
> Example:
> ip = strpos('lat', strdata) ;; Locate 'lat'
> if ip GE 0 then lat = float(strmid(strdata,ip+3)) ; Pull out float after 'lat'
>
> This can be tricky if your keyword names are substrings of each other
> though.
>
> A *really* subversive thing to do, which is thus the obvious technique
> for me to try myself, is to replace 'lat' with 'lat:', and so on, wrap
> the whole string in curly braces, and then EXECUTE() it into a
> structure. That will need some error trapping though.
>
> Hope those suggestions helped!
> Craig
|
|
|