如何通过此代码减少时间? 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
此代码工作正常,但需要花费太多时间。 如何减少时间?
答案 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
控制结构更快。