Simple Arrays

Michael Kann mikekann at yahoo.com
Sat Jan 9 21:35:24 EST 2010


Bob, Maybe we can learn something about arrays together.

First, the format for a multi-dimensional array is

theData[1][1] = "1"   NOT  theData[1,1] = "1"

-----------------------
-- as an example, put your 4 lines into fld 1
-----------------------
1,A,Green
2,B,Blue
3,C,Orange
4,D,White
-----------------------
-- to get those 4 lines into a multi-dimensional
-- array called myArray I think you need code
-- like below (which you already know)
-- There might be an easier way.
-----------------------
on mouseUp
put fld 1 into v
set itemDelimiter to comma
put zero into countLine
repeat for each line curLine in v
    add 1 to countLine
    put zero into countItem
        repeat for each item curItem in curLine
            add 1 to countItem
            put curItem into myArray[countLine][countItem]
      end repeat
end repeat
put myArray[1][2] into fld 2
end mouseUp
-----------------------
-- will end up with "A" in fld 2
------------------------
Now for the transpose function.

>From the dictionary:

-- The array is a two-dimensional array variable whose elements are numbers, and whose keys are sequential numbers. --

So it looks like transpose will only work for two-dimensional arrays. It won't work for your example. 








--- On Sat, 1/9/10, Bob Sneidar <bobs at twft.com> wrote:

> From: Bob Sneidar <bobs at twft.com>
> Subject: Simple Arrays
> To: "How to use Revolution" <use-revolution at lists.runrev.com>
> Date: Saturday, January 9, 2010, 7:12 PM
> 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

 
> 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! 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
> 


      



More information about the use-livecode mailing list