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

Home » Public Forums » archive » Re: Another strsplit question
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: Another strsplit question [message #37747] Wed, 21 January 2004 08:31
kneller is currently offline  kneller
Messages: 4
Registered: January 2004
Junior Member
MKatz843@onebox.com (M. Katz) wrote in message news:<4a097d6a.0401201249.3299ca9b@posting.google.com>...
> kneller@nist.gov (Larry Kneller) wrote in message news:<96e91d8d.0401200800.34fa60fa@posting.google.com>...
>> Most functions in IDL will operate on arrays.
>> Is there a way to make strsplit allow this?
>>
>> e.g.
>> s = ['I see the computer.','I am typing a message.',$
>> 'This is the idl-pvwave newsgroup.']
>>
>> segs = strsplit(s,/extract,/some_option)
>>
>> print,segs[0,0],segs[1,0],segs[2,0],segs[2,4]
>>
>> RESULT WOULD BE:
>>
>> I I This newsgroup.
>
> The difficulty here is that since every input string is different,
> every row of the output array will want to have a different number of
> values. So it's ambiguous how you'd write it. Would you look for the
> row with the most elements and make all rows be that long? That's one
> way. Or would you have the output be a pointer array where each
> element points to an array of strings. That's probably more memory
> efficient in the long run, but some people might not like dealing with
> pointers, and you'd run the risk of asking for array elements that
> don't exist.
>
> Looks like you need to write your own function here to fit your needs.
> That's pretty straightforward to do in a case like this.
>
> M. Katz


Thanks for the suggestions! I think the array of pointers makes more
sense for my personal use. That would easily allow a ragged array
of 'strings'.
Re: Another strsplit question [message #37759 is a reply to message #37747] Tue, 20 January 2004 12:49 Go to previous message
MKatz843 is currently offline  MKatz843
Messages: 98
Registered: March 2002
Member
kneller@nist.gov (Larry Kneller) wrote in message news:<96e91d8d.0401200800.34fa60fa@posting.google.com>...
> Most functions in IDL will operate on arrays.
> Is there a way to make strsplit allow this?
>
> e.g.
> s = ['I see the computer.','I am typing a message.',$
> 'This is the idl-pvwave newsgroup.']
>
> segs = strsplit(s,/extract,/some_option)
>
> print,segs[0,0],segs[1,0],segs[2,0],segs[2,4]
>
> RESULT WOULD BE:
>
> I I This newsgroup.

The difficulty here is that since every input string is different,
every row of the output array will want to have a different number of
values. So it's ambiguous how you'd write it. Would you look for the
row with the most elements and make all rows be that long? That's one
way. Or would you have the output be a pointer array where each
element points to an array of strings. That's probably more memory
efficient in the long run, but some people might not like dealing with
pointers, and you'd run the risk of asking for array elements that
don't exist.

Looks like you need to write your own function here to fit your needs.
That's pretty straightforward to do in a case like this.

M. Katz
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: again strsplit
Next Topic: Extract data from HDF VGroup

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

Current Time: Sun Oct 12 02:20:34 PDT 2025

Total time taken to generate the page: 0.80271 seconds