keeping keys of an array in the order they came in?
alex at tweedly.org
Sat Aug 19 10:57:53 EDT 2017
Hmmm - you haven't mentioned how much data you're working with.
Using lineoffset() to check for duplicated keys will make you
(relatively) slow on large data sets, since it is O(n**2).
Since you know that item 2 is not empty, you must also know that the
whole line is not empty :-),
so you can simply check for that.
put empty into Array
repeat for each line tLine in tData
put item 2 of tLine into tKey
if tKey = EMPTY then next repeat
if tArray[tKey] is EMPTY then
put tLine & CR after tArray[tKey] -- or would 'into' be even
faster than 'after' ??
On 19/08/2017 15:23, Klaus major-k via use-livecode wrote:
> Little addition, thanks hermann:
>> Am 19.08.2017 um 15:44 schrieb Klaus major-k via use-livecode <use-livecode at lists.runrev.com>:
>> Hi Mike,
>> I added a little IF THEN clause to avoid doublettes in the ney key, too,
>> and now it does what I need, thanks again!
>>> Am 19.08.2017 um 15:12 schrieb Klaus major-k via use-livecode <use-livecode at lists.runrev.com>:
>>>> put empty into tArray
> ## To avoid surpises with LINEOFFSET:
> set the wholematches to TRUE
>>>> repeat for each line tLine in tData
>>>> put item 2 of tLine into tKey
>>>> if tKey = EMPTY then next repeat
>>>> put tLine & CR after tArray[tKey]
> ## So this will work as exspected:
>> if lineoffset(tKey,tArray["keylist"]) = 0 then
>> put tKey & CR after tArray["keylist"]
>> end if
>>>> ## put tKey & cr after tarray['myKeyList']
>>>> end repeat
> Klaus Major
> klaus at major-k.de
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
More information about the Use-livecode