Collapse (?) An Array?

Bob Sneidar bobs at twft.com
Thu Sep 1 12:53:49 EDT 2011


No Scott you are missing a bit of information here. Try this:
on mouseUp
   put "This is a test" into theArray[1]
   put "This is a second test" into theArray[2]
   put "This is a third test" into theArray[3]
   delete variable theArray[2]
   put the keys of theArray
end mouseUp

What you will get is:
1
3

There is no "empty slot. Now try this:
on mouseUp
   put theBogusArray[1]
end mouseUp

You will get empty. Referencing a nonexistent element of a nonexistant array returns empty. It does not generate an error. This is what is tripping you up. 

Bob


On Sep 1, 2011, at 7:10 AM, Scott Rossi wrote:

> Recently, Richard Gaskin wrote:
> 
>> The delete is fine; the problem is in the display of the results.
>> 
>> If you use:
>> 
>>   put theArray[1] &"*"&theArray[2] &"*"& theArray[3]
>> 
>> ...you'll get the empty entry for theArray[2].  The variable theArray
>> still exists, but there's nothing in that slot.
> 
> Yes, this is the problem.  I'm storing data in array form in custom
> properties, and my problem is after a delete, the remaining elements of the
> array are not reordered.
> 
> 
>> Building the output from the keys of the array will get what you want:
>> 
>>   put the keys of theArray into tKeys
>>   sort lines of tKeys -- if the order is important
>>   repeat for each line tKey in tKeys
>>      put "*"& theArray[tKey] after tResult
>>   end repeat
>>   put tResult
> 
> From what you're saying, it sounds like I need to put the remaining elements
> of the array into a temporary variable and then replace the original array.
> 
> Regards,
> 
> Scott Rossi
> Creative Director
> Tactile Media, UX Design
> 
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode





More information about the use-livecode mailing list