[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: David: for your book ?
- Subject: Re: David: for your book ?
- From: landsman(at)my-deja.com
- Date: Wed, 16 Aug 2000 18:42:24 GMT
- Newsgroups: comp.lang.idl-pvwave
- Organization: Deja.com - Before you buy.
- References: <399937D2.8C0A52A2@dkrz.de>
- Xref: news.doit.wisc.edu comp.lang.idl-pvwave:20906
In article <399937D2.8C0A52A2@dkrz.de>,
Martin Schultz <firstname.lastname@example.org> wrote:
> What would you expect to get out of the following:
> test = [ 'dir1/', 'directory2/', 'another_directory/' ]
> Well, I at least had expected to get the directory names without the
> trailing '/'.
> But, no!
> help, strmid(test,0,strlen(test)-1)
> reveals that the result is a 3x3 array!!
When IDL added vector capabilities to STRMID in V5.3, they allowed for
both (1) the extraction of multiple substrings from each element of a
string, and (2) having the first character position and substring length
differ for each element of a string array. Unfortunately, adding all
this power has made the syntax awkward. According to the documentation
"If First_Character or Length is an array, the size of their first
dimension determines how many substrings are extracted from each element
So the solution is to REFORM the string length (or position) array to
IDL> test = [ 'dir1/', 'directory2/', 'another_directory/']
IDL> print,strmid(test,0,reform( strlen(test)-1, 1, 3) )
===>dir1 directory2 another_directory
By reforming the string length array into a 1 x 3 size, STRMID now knows
to extract only 1 substring from each element of test.
A simple program to extract a string array up to a specified character
using the vector capabilities of STRMID is available at
--Wayne Landsman email@example.com
Sent via Deja.com http://www.deja.com/
Before you buy.