Does 'exists' work on arrays?
Peter M. Brigham
pmbrig at gmail.com
Sun Mar 15 14:32:20 EDT 2015
Not a utility, but here's a way of displaying a multilevel array so you can see its structure.
-- Peter
Peter M. Brigham
pmbrig at gmail.com
http://home.comcast.net/~pmbrig
-------
function displayArray @pArray, pFullData, _pDimension
-- by Peter M. Brigham, pmbrig at gmail.com — freeware
-- adapted from a handler by Trevor DeVore
-- displays an array as an outline-style list
-- most useful for multidimensional arrays, to see the structure
-- if an element of the array contains more than one line,
-- the first line only will be displayed (less confusing to look at)
-- if you want to see the full data then pass pFullData = true
-- _pDimension is an internally used parameter
-- pArray is referenced to avoid duplicating large arrays in memory,
-- but the array is not altered by this function
-- call it like this: put displayArray(tArray) into fld "peruse"
-- requires makestring()
if _pDimension is empty then put 0 into _pDimension
if pFullData = empty then put false into pFullData
put ": " into divString
put the keys of pArray into theKeys
if line 1 of theKeys is a number then
sort theKeys numeric
else
sort theKeys
end if
repeat for each line theKey in theKeys
if pArray[theKey] is an array then
put makeString(space,_pDimension*3) & theKey & cr after theText
put pArray[theKey] into theTempArray
put displayArray(theTempArray, pFullData, _pDimension + 1) after theText
else
if pFullData then
put makeString(space,_pDimension*3) & theKey & ":" \
&& pArray[theKey] & cr after theText
else
put pArray[theKey] into tElement
put empty into tTrailer
if the number of lines of tElement > 1 then
put " ..." into tTrailer
end if
put makeString(space,_pDimension*3) & theKey & divString \
& (line 1 of tElement) & tTrailer & cr after theText
end if
end if
end repeat
return theText
end displayArray
function makeString pChar, n
-- returns a string of n characters (pChar)
-- no repeat loop!
-- by Peter M. Brigham, pmbrig at gmail.com — freeware
-- improved by Richard Gaskin
set the linedel to pChar
put pChar into line n of temp
return temp
end makeString
On Mar 15, 2015, at 2:19 PM, Mike Bonner wrote:
> If you are just trying to get a handle on the structure, and how to pull
> out specific chunks, you can declare it global, and use the message box to
> poke around.
>
> If its global, in the multiline msg box declare it too, and "put the keys
> of... "
> Then adjust it to look at subkey contents, poking around till you figure
> out where things are.
>
> And now i'm wondering if anyone has built an array browser utility?
>
> On Sun, Mar 15, 2015 at 11:56 AM, Scott Rossi <scott at tactilemedia.com>
> wrote:
>
>> Try: if myArray is an array
>>
>>
>> Regards,
>>
>> Scott Rossi
>> Creative Director
>> Tactile Media, UX/UI Design
>>
>>
>>
>>
>> On 3/15/15, 9:50 AM, "Graham Samuel" <livfoss at mac.com> wrote:
>>
>>> Still struggling with arrays: no results, no error messages, no dataŠ
>>> will get there no doubt. While trying to get there, I tried
>>>
>>> put exists(myArray[³gpx²])
>>>
>>> I got Œfalse¹, but the IDE seems to say that the top key in this
>>> multidimensional array is ³gpx², so why isn¹t it true?
>>>
>>> Puzzled on a wet Sunday afternoonŠ
>>>
>>> Graham
>>>
>>>
>>>
>>> _______________________________________________
>>> 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
>>
>>
>>
>> _______________________________________________
>> 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
>>
> _______________________________________________
> 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