Reading arrays, 3 methods tested, results

Phil Davis revdev at pdslabs.net
Wed Jul 27 17:28:14 EDT 2016


Hey Richard,

Wouldn't it give more accurate results to compare arrays without 
encoding them, rather than comparing the encoded arrays? Isn't encoded 
string way roughly 100% likely to be 'not equal'?

Thanks -
Phil Davis


On 7/27/16 1:52 PM, Richard Gaskin wrote:
> Mark Talluto wrote:
>
> >> On Jul 27, 2016, at 12:48 PM, Richard Gaskin wrote:
> >>
> >> Thanks, Mark.  You know I loves me some benchmarking. :)
> >>
> >> Do all three produce the same result?
> >
> > Yes.
>
> I get very different results here using this script to produce a small 
> sample data set.  I would expect them to be different given that 
> Method 1 re-uses a single multi-line key, and Method 3 uses a 
> multi-line key to retrieve a value that in the original data is a 
> simpler key.
>
> Then again, I have to admit I'm not sure what the transformation is 
> supposed to do.
>
> Where does this code go wrong?:
>
>
>
> on mouseUp
>    -- Create small data set:
>    repeat with i = 1 to 5
>       repeat with j = 1 to 5
>          repeat with k = 1 to 5
>             put "val-"& i &"-"& j &"-"& k into tVal
>             put tVal into gCSIdatabaseA[i][j][k]
>          end repeat
>       end repeat
>    end repeat
>    -- Arbitrary ID for sub-array of interest:
>    put 5 into xTableID
>    --
>
>    --GET ALL THE RECORDS FROM THIS TABLE
>    repeat for each element xRecordClusterA in gCSIdatabaseA[xTableID]
>       repeat for each element xElement in xRecordClusterA
>          put xElement into tRecordA1[xTableID][(the keys of 
> xRecordClusterA)]
>       end repeat
>    end repeat
>
>
>    --GET ALL THE RECORDS FROM THIS TABLE
>    repeat for each element xRecord in gCSIdatabaseA[xTableID]
>       repeat for each key xRecordID in xRecord
>          put xRecord[xRecordID] into tRecordA2[xTableID][xRecordID]
>       end repeat
>    end repeat
>
>
>    --GET ALL THE RECORDS FROM THIS TABLE
>    repeat for each key xRecordCluster in gCSIdatabaseA[xTableID]
>       put the keys of gCSIdatabaseA[xTableID][xRecordCluster] into 
> tRecordID
>       put gCSIdatabaseA[xTableID][xRecordCluster][tRecordID] into 
> tRecordA3[xTableID][tRecordID]
>    end repeat
>
>
>    -- Display result:
>    put arrayEncode(tRecordA1) into r1
>    put arrayEncode(tRecordA2) into r2
>    put arrayEncode(tRecordA3) into r3
>    put ( (r1 = r2) AND (r2 = r3) ) \
>          &cr&cr& "Set1 len="& len(r1) &cr&"<START>"& r1 &"<END>" \
>          &cr&cr& "Set2 len="& len(r2) &cr&"<START>"& r2 &"<END>" \
>          &cr&cr& "Set3 len="& len(r3) &cr&"<START>"& r3 &"<END>"
> end mouseUp
>
>

-- 
Phil Davis





More information about the use-livecode mailing list