搜索文本文件中的单词

时间:2015-06-05 12:39:34

标签: livecode

如何通过此代码减少时间? TE是包含我的文本的变量(包含超过20000行) s是我的搜索词。

repeat with x = 0 to the number of lines in TE
      if line x of TE contains s then
         put line x-1 of TE & cr & line x of TE & cr & line x+1 of TE & cr & cr after dataarray
      end if 
   end repeat

此代码工作正常,但需要花费太多时间。 如何减少时间?

1 个答案:

答案 0 :(得分:0)

尽量避免使用repeat with语法。相反,请使用repeat for each语法:

put 0 into myLineNr
repeat for each line myLine in myData
  // update counter
  add 1 to myLineNr
  if myLine contains mySearchString then
     // store data in new variable
     put line myLineNr - 1 of myData & cr & myLine & cr & line myLineNr + 1 of myData & cr & cr after myNewData
  end if 
end repeat

我更改了脚本以允许重复的行。这需要一个计数器,但使用计数器仍然比使用repeat with控制结构更快。