Split, combine ok but where's extract?

Alex Tweedly alex at tweedly.net
Sat Feb 12 19:25:01 EST 2005


David Vaughan wrote:

>
> On 13/02/2005, at 4:00, MisterX" <b.xavier at internet.lu> wrote:
>
> Xavier
>
> I have not searched back to your original request, but if I understand 
> it correctly then you wish to be able to de-merge columns from an 
> array, and that these columns may be of the data or of the keys. Let 
> us assume you have an array where an element is defined by:
> put "n1,n2" into myArray[a,b]
>
> Here, you can extract anything from the keys or the element using 
> split and combine. For example, this code places all four columns in 
> separate variables  v1-v4 (untested)
>
> put the keys of myArray into tKeys
> split tKeys with return and comma
> put the keys of tKeys into v1
> combine tKeys   -- discards the keys
> put tKeys into v2
>
> combine myArray  -- discards the keys
> split myArray with return and comma
> put the keys of myArray into v3
> combine myArray
> put myArray into v4
>
> Now, v1=a, v2=b, v3=n1, v4=n2
> (or close enough if I made a coding error)
>
> I have a column merge function somewhere. I will look it up to see if 
> it is any improvement over what you have.

David,
I may have missed something in the original problem description, but I 
think there's a problem with this scheme.

If you take the case of
   put "1,2" into myArray[a,b]
   put "1,3" into myarray[c,d]

I believe what Xavier wants (at least, what his posted code gives - 
though it used a simple table not keys) is
 v1 = a,c
 v2 = b,d
 v3 = 1,1
 v4 = 2,3

Note particularly v3 - using the various "repeat" forms, it has each 
item from the column.

split/combine will remove duplicates - and hence give
 v1 = a,c
 v2 = b,d
 v3 = 1
 v4 = 2,3

There's a similar problem with the merge code - repeated values in a 
column cause loss of data.

-- 
Alex Tweedly       http://www.tweedly.net



-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 265.8.7 - Release Date: 10/02/2005



More information about the use-livecode mailing list