Speeding up array initialization

Geoff Canyon gcanyon at inspiredlogic.com
Sat Nov 22 17:36:44 EST 2003


First, remember that you don't have to initialize an array unless you 
have values you want in it. Without initializing anything,

put x[1,2] into y

is perfectly fine, and results in y containing empty.

In the case you listed below, what you want is something like this:

1,1 a
1,2 b
1,3 c
1,4 d
1,5 e
2,1 f
2,2 g
2,3 h
2,4 i
2,5 j

In the above the separator is a space, for ease of use in email. You 
need to use something that is guaranteed not to be in your index or 
data.

Given the above in a variable x,

split x using return and space

would give you the array you want.

So now you just need a way to go from the lines you have to the 
information above. Something like this will work:

   put empty into tNewData
   put 0 into tLineCounter
   repeat for each line L in tData
     add 1 to tLineCounter
     put 0 into tItemCounter
     repeat for each item T in L
       add 1 to tItemCounter
       put tLineCounter,tItemCounter && T & cr after tNewData
     end repeat
   end repeat

regards,

Geoff Canyon
gcanyon at inspiredlogic.com

On Nov 22, 2003, at 1:49 PM, jbv wrote:

>>
>>
>> You can change your delimiters in the split, JB.  (The second cannot 
>> be
>> null, though.)  Build your value to be split appropriately.
>>
>
> Well, thanks for the advice, but I've already tried the split cmd in 
> many
> ways, but with no success...
>
> Here's an example :
> I have a variable S made of 2 lines of 5 items each :
>     line 1 :    a,b,c,d,e
>     line 2 :    f,g,h,i,j
>
> how do I use the split cmd so that I get a 2 dimensions array S in 
> which :
>     S[1,1] = a
>     S[1,2] = b
>     S[2,1] = f
>     S[2,2] = g
> and so on...
>
> Thanks,
> JB
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/use-revolution
>



More information about the use-livecode mailing list