Speaking of Filter and Match...
Dick Kriesel
dick.kriesel at mail.com
Mon Mar 14 20:08:56 EDT 2022
> On Mar 13, 2022, at 1:05 PM, J. Landman Gay via use-livecode <use-livecode at lists.runrev.com> wrote:
>
> On 3/12/22 8:54 PM, Roger Guay via use-livecode wrote:
>> I have a field with about a thousand lines with many duplicate lines, and I want to delete the duplicates. Seems like this should be simple but I am running around in circles. Can anyone help me with this?
>
> Making the list into an array is the easiest way but as mentioned, it will destroy the original order. If the order is important then you can restore it with a custom sort function...
>
Since order must be maintained, it’s probably faster not to split and sort, and faster not to scan the list repeatedly using lineOffset or contains.
You could do it like this:
command removeDuplicates pDelimitedList, pDelimiter
local tArray, tList
set the lineDelimiter to pDelimiter
repeat for each line tLine in pDelimitedList
if not tArray[tLine] then -- i.e., if this line hasn't appeared already, then ...
put true into tArray[tLine]
put tLine & pDelimiter after tList
end if
end repeat
delete last char of tList
return tList for value
end removeDuplicates
— Dick
More information about the use-livecode
mailing list