Thanks for your replies, Chris, Josh, Mark, and Richard,

You've confirmed what I suspected: that it will be tricky to get the filter command to do this. This is especially true in my case because the data field has 56 columns by default but individual rows may have data appended later, and so may grow beyond 56.

I think I'll do what I used to do before the filter command was around, and that is to repeat an itemOffset over the data. I tested the function below, which is much like Josh's, and it filters more than 300 lines in 1 tick; the same code as a message handler rather than a function takes 5 ticks; and the filter command on the same data takes 39 ticks.

Thanks once again,

        Gregory


function filterByColumn theData,columnNum, theSearchString
  -- This function filters tab-delimited data by column
  if columnNum is an integer
  then
    set the itemDelimiter to tab
    repeat for each line thisLine in theData
      if item columnNum of thisLine is theSearchString
      then
        put thisLine & return after filteredData
      end if
    end repeat
    delete the last character of filteredData
    return filteredData
  else
    return "The column number must be an integer."
  end if
end filterByColumn

_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to