Simple Arrays
Thomas McGrath III
mcgrath3 at mac.com
Sun Jan 10 08:52:19 EST 2010
Pardon my question, but I have learned more about arrays in these four
posts than I ever thought about before:
So given that I would want a multi-dimensional array where theData[2]
[3] = "Blue" as in the examples provided, what is the 'best' way to
enter data into this array, or is the way Bob did it the best way?
Workflow:
First;
>> put "1"& comma& "A"& comma& "Green"& return into theData
>> put "2"& comma& "B"& comma& "Blue"& return after theData
>> put "3"& comma& "C"& comma& "Orange"& return after theData
>> put "4"& comma& "D"& comma& "White"& return after theData
Then ;
split theData with cr
Would this get me theData[2][3] = "Blue" ??? I thought the delimiter
was TAB?
Would this be better:
put "1"& tab& "A"& tab& "Green"& return into theData
OR is this all wrong and if so what is the 'best' way to enter a lot
data into a mutli-dimensional array to get these results??
Thank you for this.
Tom McGrath III
Lazy River Software
3mcgrath at comcast.net
iTunes Library Suite - libITS
Information and download can be found on this page:
http://www.lazyriversoftware.com/RevOne.html
On Jan 9, 2010, at 9:37 PM, Phil Davis wrote:
> Hi Bob,
>
> On 1/9/10 5:12 PM, Bob Sneidar wrote:
>> Hi all.
>>
>> Apparently I am not getting arrays AT ALL. I would think that given:
>>
>> put "1"& comma& "A"& comma& "Green"& return into theData
>> put "2"& comma& "B"& comma& "Blue"& return after theData
>> put "3"& comma& "C"& comma& "Orange"& return after theData
>> put "4"& comma& "D"& comma& "White"& return after theData
>>
>> which would get me:
>> 1,A,Green
>> 2,B,Blue
>> 3,C,Orange
>> 4,D,White
>>
>
> Actually either of these:
>
> split theData with cr
> split theData by row -- where the rowDelimiter is CR
>
> would get you this:
>
> theData[1] = "1,A,Green"
> theData[2] = "2,B,Blue"
> theData[3] = "3,C,Orange"
> theData[4] = "4,D,White"
>
>> I could then split by column (or by row I get confused) and get a
>> simple array where:
>> theData[1,1] = "1"
>> theData[1,2] = "A"
>> theData[2,1] = "2"
>> theData[4,3] = "White"
>>
>> And so forth. However, this is NOT the case!
>
> Right. Technically speaking, comma is not an array index separator.
> Commas in our array keys help us conceptually represent multiple
> array dimensions in our own minds, but Rev sees an array with such
> keys as a simple one-dimensional array with alphabetic keys (since
> commas are not numerals).
>
> Until version 3.0, Rev couldn't handle true multi-dimensional
> arrays. Since then, the thing that tells Rev "this is a multi-
> dimensional array" is multiple keys per element, with each key in
> its own bracket. Like this:
>
> theData[1][1] = "1"
> theData[1][2] = "A"
> theData[1][3] = "Green"
>
>
> Now do you see why 'transpose()' wouldn't work with your array? In
> part it's because your keys aren't numeric - they contain commas.
> (Also they have to be sequential numbers.)
>
> Welcome to array re-education camp! ;-)
>
> Phil Davis
>
>
>> If it were, I could issue a command:
>>
>> put transpose(theData) into myArray
>>
>> and:
>> myArray[1,2] = 2
>> myArray[1,3] = 3
>>
>> and so on. If I got the entire row (I think there's a function for
>> that) then I would have effectively gotten the column of the
>> original data. Seems reasonable eh?
>>
>> So can someone please explain to me why I cannot get a simple x,y
>> row,column grid-like array using these simple commands? Revolution
>> seems to think that the first column MUST be the key! I would LIKE
>> for revolution to simply create it's OWN numerical keys and let my
>> data be my data. Maybe in the future add an argument to the split
>> and combine commands to tell it whether or not I WANT Revolution to
>> treat my first column as the key?
>>
>> If arrays worked like I described above, it would be a simple
>> matter to get a single column of an array, just by transposing it
>> and getting an entire row, instead of writing complex repeat loops
>> to get a column of data. Am I missing something here?
>>
>> Thanks for any wisdom you can give. I can save some helpful souls
>> the trouble of responding by saying I am capable of making repeat
>> loops to accomplish this. I was just hoping that maybe I was
>> missing something and I can in fact do what I thought I could.
>>
>> Bob_______________________________________________
>> use-revolution mailing list
>> use-revolution at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-revolution
>>
>>
>
> --
> Phil Davis
>
> PDS Labs
> Professional Software Development
> http://pdslabs.net
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution
More information about the use-livecode
mailing list