array mystery

dunbarx at aol.com dunbarx at aol.com
Thu May 3 17:34:38 EDT 2012


Peter.


There was a very recent thread about permissible chars for an array, and it seems that all chars except null work fine. is it possible that your recalcitrant empty lines might contain (or simply be) a null?


Craig



-----Original Message-----
From: Peter M. Brigham, MD <pmbrig at gmail.com>
To: How to use LiveCode <use-livecode at lists.runrev.com>
Sent: Thu, May 3, 2012 4:33 pm
Subject: Re: array mystery


On May 3, 2012, at 3:10 PM, Ken Ray wrote:

> 
> On May 3, 2012, at 12:47 PM, Peter M. Brigham, MD wrote:
> 
>> I have a customprop, CYPdata, that is an array, each element of which is an 
array itself. I am scraping the data to build CYPdata from an HTML page on the 
web, and filling it via script by parsing the HTML. There is an odd bug that I'm 
trying to get to the bottom of, and something strange is happening when I do the 
following in a test button:
>> 
>> on mouseUp
>>  put the CYPdata of this stack into CYParray
>>  put CYParray["fluvoxamine"] into aFLV
>>  put CYParray["doxepin"] into aDOX
>>  put aFLV is an array into testFLV
>>  put aDOX is an array into testDOX
>>  breakpoint
>> end mouseUp
>> 
>> In the debugger variable pane at the breakpoint, expanding the array CYParray 
shows the keys, which are a whole list of drugs (as it should be), and each 
key/drug is indeed indicated as containing an array (with the little gray 
expansion triangle at the left). If I examine CYParray["fluvoxamine"] by 
clicking the expansion triangle, it shows the elements of that array, as 
expected. Same for CYParray["doxepin"]. The correct data is there in both cases. 
However, the aDOX variable does not display as an array (no expansion triangle) 
and testDOX = false, whereas aFLV is indeed an array, as displayed in the 
debugger and confirmed by testFLV = true.
>> 
>> What could be going on here? As it happens, the "doxepin" case is handled 
differently from the "fluvoxamine" case when I parse the HTML in loading the 
array, since they appear in slightly different contexts, so that must be the 
source of the difference, but how can the debugger show the "doxepin" array keys 
properly but somehow CYParray["doxepin"] not an array? Any ideas?
> 
> Peter, instead of trying to store multidimensional arrays "raw" in the custom 
property; can you use arrayEncode/arrayDecode? I think it might help eliminate 
issues; so assuming you parse the HTML and you have the data in a 
multidimensional array variable "CYParray", instead of doing:
> 
>  set the CYPdata of this stack to CYParray
> 
> do
> 
>  set the CYPdata of this stack to arrayEncode(CYParray)
> 
> … and then when you're ready to read it:
> 
> on mouseUp
>  put arrayDecode(the CYPdata of this stack) into CYParray  -- changed line
>  put CYParray["fluvoxamine"] into aFLV
>  put CYParray["doxepin"] into aDOX
>  put aFLV is an array into testFLV
>  put aDOX is an array into testDOX
>  breakpoint
> end mouseUp
> 
> Ken Ray

I'll try that. However, I'm suspecting a problem with the raw data fetched from 
the webpage, since after doing several filters on a section of the HTML 
containing "doxepin" I was left with something that looked like the correct list 
of meds, one to a line, but with some empty lines. When I tried to "filter tList 
without empty" it was left unchanged, and even doing a descending repeat loop to 
delete empty lines it was unchanged. I had to resort to a descending repeat loop 
checking if the number of words of line n of tList = 0 and deleting those. There 
appeared to be no tabs or detectable characters in tList (I would not expect 
tabs anyway in a distillation of HTMLtext). But there's something squirrely 
about the text I'm fetching. I'm wondering if it's related to line termination 
characters in some way, so I may try putting the raw text into a hidden field 
and then taking it out again before parsing it, to let the LC engine handle the 
cross-platform EOL/CR/LF complexities. But I'll try the arrayEncode/arrayDecode 
thing too.

-- Peter

Peter M. Brigham
pmbrig at gmail.com
http://home.comcast.net/~pmbrig


_______________________________________________
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