Er, I think I have just reached the fourth level of array un-enlightenment.
Wait!…. I can see the cyberverse! SCHLOOOooooppp!-ting! > On 3/8/21 5:36 PM, Bob Sneidar via use-livecode wrote: >> Are you testing for empty, or are you testing if there is a value in an >> array variable? If there is no key matching your array variable, LC will >> return an empty string. An empty string is a value. >> >> Mark is using a different method, seeing if a key of an array is itself an >> array. If bobtest ["value"] contains another array so that bobtest ["value"] >> ["anumber"] contains 1, then bobtest ["value"] is an array. If bobtest >> ["value"] contains 1 then it is not an array. >> >> But getting the value of bobtest ["value"] ["number"] will return empty >> whether or not bobtest '{value"] is an array. This is why Mark is testing >> for an array rather than the value. >> >> It seems a bit wonky, you might think, "Why not return an error?" But trust >> me, when you work with arrays, especially when it comes to datagrid data, >> this is the best course. >> >> Bob S >> >> >>> On Mar 8, 2021, at 16:25 , HENRY LOWE via use-livecode >>> <use-livecode@lists.runrev.com> wrote: >>> >>> Thanks Mark. There are two possible states: >>> >>> tArray[“status”] holds a value and tArray[“status”][“text”] does not >>> >>> or >>> >>> tArray[“status”][“text”] holds a value and tArray[“status”] does not >>> >>> >>> My code is trying to do the following: >>> >>> If tArray[“status”] does not hold a value then check if >>> tArray[“status”][“text”] holds a value >>> >>> >>> The crux is how one reliably determines that an array member (e.g. >>> tArray[“status”]) holds a value? >>> >>> I would have assumed that if the array member does not hold a value then - >>> if tArray[member] is empty would always return true. However that does not >>> appear to be the case if the array is multidimensional. >>> >>> >>> It appears that both tArray[“status”] is an array and >>> tArray[“status”][“text”] is an array are true. Am I missing something about >>> using this syntax? >>> >>> Thanks, >>> >>> Henry >>> >>> >>>> On Mar 8, 2021, at 3:56 PM, Mark Wieder via use-livecode >>>> <use-livecode@lists.runrev.com> wrote: >>>> >>>> On 3/8/21 3:46 PM, HENRY LOWE via use-livecode wrote: >>>> >>>>> I have often used the form 'if tArray[“key1”] is empty' to determine >>>>> whether an array element hold a value but this breaks if >>>>> tArray[“key1”][“key2”] holds a value. >>>> Same here. Not that I've every liked that paradigm, just that it's been >>>> that way since life crawled out of the ocean. >>>> >>>> However this should do the trick. >>>> >>>> if tArray["status"] is an array then >>>> put tArray["status"]["text"] into tStatus >>>> else >>>> put tArray["status"] into tStatus >>>> end if >>>> >>>> -- >>>> Mark Wieder >>>> ahsoftw...@gmail.com >>>> >>>> _______________________________________________ >>>> use-livecode mailing list >>>> use-livecode@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@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@lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your subscription >> preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode > > -- > Phil Davis > 503-307-4363 > > > _______________________________________________ > use-livecode mailing list > use-livecode@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@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode