在文本文件中搜索单词

Searching word in a text file

如何通过这段代码减少时间? 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

这段代码工作正常,但它花费了太多时间。 如何减少时间?

尽量避免使用 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 控制结构更快。