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