Applescript痛苦地缓慢

时间:2013-12-29 15:16:27

标签: performance applescript

我是Apple的新手,并且想知道你是否看到我的下面的代码有问题,因为它很慢:

set myPath to ((path to desktop as text) & "a.txt") as alias
set myFile to read myPath
set myText to paragraphs of myFile
set rowCounter to 0

repeat with nextline in myText
    set rowCounter to rowCounter + 1
end repeat

rowCounter

我正在打开的文本文件很大,即大约1.1米的记录。 VBA中的相同代码打开它并在大约7秒内计算行数,使用applescript花了10分钟的大部分时间。

我做错了吗?

谢谢, 亚历

2 个答案:

答案 0 :(得分:1)

你所拥有的重复循环最有可能永远处理 并且不需要使用重复循环来计算列表中的项目。

您已经拥有所有段落的项目列表。

因此,您应该只能 count 列表中的项目数。

Set rowcounter to number of items in myText

或者

Set rowcounter to count of myText

另外一边。

你的重复循环没有使用索引变量'nextline'

如果你想迭代每个项目,你会使用类似的东西:

Repeat with nextline from 1 to count of myText

Set thisItem to nextline of myText


....

答案 1 :(得分:0)

你也可以尝试这样的事情:

set myPath to POSIX path of ((path to desktop as text) & "a.txt")
set lineCount to (do shell script "wc -l " & quoted form of myPath & " | sed -E 's/^ *([[:digit:]]+).*/\\1/'") as number