Thanks Rob, I presumed that this would be the only answer, was just hoping for something less intensive.
Thanks again -----Original Message----- From: Rob Romanek [mailto:[EMAIL PROTECTED] Sent: 18 August 2004 13:12 To: [EMAIL PROTECTED] Subject: Re: <lingo-l> check for lingo list index existence Hi Tim, Recursion is the answer to this. Here is a sample of how this works. --movie handler on nestedListRetrieval aList, aPath c = aList.count if aPath[1] > c then return void tValue = aList[aPath[1]] if aPath.count > 1 then aPath.deleteAt(1) tResult = nestedListRetrieval(tValue, aPath) return tResult else return tValue end if end --in the message window tList = [[[1,2],[3,4],[5,6]],[[7,8],[9,0]]] put tList[1][3][2] --6 put nestedListRetrieval(tList, [1,3,2]) --6 tList = [[[1,2],[3,4],[5,6]],[[7,8],[9,0]]] put tList[1][4][2] --index out of range put nestedListRetrieval(tList, [1,4,2]) --<void> You can modify this and make it more sophisticated, like returning extactly where in the path it chocked, but at the very least you should add some error checking before you drill down at level to make sure you are indeed passing a list. hth, Rob On Wed, 18 Aug 2004 10:36:58 +0100, Tim Welford <[EMAIL PROTECTED]> wrote: > Hi, > > I am using the XMLParser Xtra within a director 8.5 movie, and I'm > outputting the parsed XML to a lingo list with the makeList command. > > This produces large multi dimensional lists that I have to work with, > it's a pain to bug fix, but that's not the current issue. > > Although I will always be 99.9% sure that the xml layout will always > be the same, I would like to check that a specific list element exists > before trying to access it and protect myself against any "index out > of range errors". > > The list element I am accessing (for example) may look like this: > theList[1][2][4][2][1][1] > > Is there any way I can check that this list element exists, apart from > doing a huge nested if / loop to check the count of each dimension > before moving onto the next dimension if the count is >= the element I > want? Something like "if varExists(theList[1][2][4][2][1][1]) then". > > A nested if would be fine for 1 or 2 accesses, but I need to access > potentially hundreds of elements. > [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!] [To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]
