Arrays: new and old keys, i

Björnke von Gierke bvg at mac.com
Thu Sep 11 20:53:23 EDT 2008


I see now, but I'm still thinking about alternatives that make you not  
use "do". You say your script is recursively walking trough the XML.  
But that would allow to only use a one dimensional array assignment. I  
tried to look at your code, but it's too hard for me to understand, oh  
and I also hate XML, so I made a directory walker example instead :)

Basically the code returns an array, which is put into the parent  
array, which is then put into the parent array, which is put into it's  
parent array, etc. Would this be applicable to your XML code? Also, I  
am not sure how to do the reverse, to make folders out of the array  
(creating XML).

---example script, do not use on your whole hard drive

global theArray
on mouseUp
    put "" into theArray
    answer folder ""
    if the result = "" and it <> "" then
       set the defaultfolder to it
       put it into currFolder
       put the files into theArray["files"]
       put the folders into theNodes
       filter theNodes without ".*"
       repeat for each line theLine in theNodes
          put addChild(currFolder, theLine) into theArray[theLine]
       end repeat
    end if
end mouseUp

function addChild parentFolder theFolder
    put parentFolder & "/" &  theFolder into currFolder
    set the defaultfolder to currFolder
    put the files into theParent["files"]
    put the folders into theNodes
    filter theNodes without ".*"
    repeat for each line theLine in theNodes
       put addChild(currFolder, theLine) into theParent[theLine]
    end repeat
    return theParent
end addChild

---end example script

On 12 Sep 2008, at 01:20, Trevor DeVore wrote:

> On Sep 11, 2008, at 5:55 PM, Björnke von Gierke wrote:
>
>> Now I understand, I didn't consider not to tell rev how many sub  
>> arrays there would be. I have no clue when this would be useful  
>> though, maybe you can explain that?
>
> Sure. One thing that the ability to dynamically specify a key would  
> do is open up additional algorithms. Let's take the XML for example.
>
> The XML conversion routines I posted earlier use recursion in order  
> to create a multi-dimensional array from an XML document of unknown  
> parent/child relationships. Every time the function finds children  
> of a node the function calls itself recursively in order to process  
> those children.

-- 

official ChatRev page:
http://bjoernke.com/runrev/chatrev.php

Chat with other RunRev developers:
go stack URL "http://bjoernke.com/stacks/chatrev/chatrev1.3b3.rev"




More information about the use-livecode mailing list