Filtering one list out of another

Peter Haworth pete at lcsql.com
Tue Dec 24 10:58:53 EST 2013


I think "is among" implies wholematches = true so another way would be:

repeat with x=the number of lines in tMain down to 1
   if line x of tMain is among the lines of tExcludeList  then
      delete line x of tMain
   end if
end repeat

Pete
lcSQL Software
On Dec 23, 2013 11:29 PM, "Devin Asay" <devin_asay at byu.edu> wrote:

>
> On Dec 24, 2013, at 12:17 AM, Dick Kriesel wrote:
>
> > On Dec 23, 2013, at 6:19 PM, Paul Hibbert <paulhibbert at mac.com> wrote:
> >
> >> …or am I missing something?
> >
> > Yes, because of the way lineOffset works.  For example, if pListA is
> "12" and pListB is "2", then lineOffset(2,12) is 1, and an unintended
> delete occurs.  Avoid that by first setting the wholeMatches to true.  Then
> lineOffset(2,12) is 0.
>
> This is what I ended up with:
>
> function filterList1WithoutList2 pMainList, pExcludeList
>     put pMainList into tMain
>     repeat for each line tLine in pExcludeList
>         set the wholeMatches to true
>         put lineOffset(tLine, tMain) into tMatchedLine
>         if tMatchedLine > 0 then
>             delete line tMatchedLine of tMain
>         end if
>     end repeat
>     return tMain
> end filterList1WithoutList2
>
> Works plenty fast for my fairly short lists--max number of lines to filter
> out is less than 36.
>
> Thanks all for your help.
>
> Merry Christmas!
>
> Devin
>
>
> Devin Asay
> Learn to code with LiveCode University
> http://university.livecode.com
>
>
> _______________________________________________
> 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