Quickest was to compare 2 CR lists?

Brian Yennie briany at qldlearning.com
Tue Nov 4 04:53:45 EST 2008


Something like this should work, using arrays. Basically you just  
"mark" off each line in k2, and then go through k1 checking if they  
were marked. Since arrays are fast and you only have to pass through  
each list once w/o ever going back to the start, this should be much  
faster than lineOffset() which searches the whole list each time.

repeat for each line tLine in k2
  put 1 into tArray[tLine]
end repeat

repeat for each line tLine in k1
  if (tArray[tLine] = 1) then put tLine&cr after newList
end repeat

return char 1 to -2 of newList

> Hi all,
>
> anyone knows the quickest ways to compare 2 CR delimited lists?
> I need to know what lines of list 1 are contained in list 2.
>
> Right now I am using repeat "for each" and "lineoffset", which is  
> fast,
> but I'm ure this can be done even faster :-)
>
> List 1 = k1
> List 2 = k2
>
> ...
> repeat for each line i in k1
>   if lineoffset(i,k2) <> 0 then
>     put i & CR after new_ list
>   end if
> end repeat
> delete char -1 of new_ list
> return new_ list
> ...
>
>
> Best
>
> Klaus Major
> klaus at major-k.de
> http://www.major-k.de






More information about the use-livecode mailing list