使用成堆数字

时间:2016-03-24 15:01:40

标签: numbers applescript rename

我正在尝试使用Applescript使用一堆数字。我对这门语言很新,我以为我会请你帮忙。

我的TextEdit文件中有一组看起来像这样的数字:

v 0.186472 0.578063 1.566364
v -0.186472 0.578063 1.566364
v 0.335649 0.578063 1.771483

我需要的是一个用来解析这些数字的脚本,使它看起来像这样:

(0.186472, 0.578063, 1.566364), 
(-0.186472, 0.578063, 1.566364),
(0.335649, 0.578063, 1.771483),

所以在每个数字之后,必须有一个逗号,并且总是必须将一行中的三个数字放入括号()中。最后,每个括号中的三个小组之后必须有另一个逗号,并且每行之前v必须删除。

我到目前为止只能使用以下方法摆脱每个“v”:

set stringToFind to "v"
set stringToReplace to ""

但现在我陷入困境,我希望能得到帮助。

1 个答案:

答案 0 :(得分:0)

要在AppleScript中查找和替换字符串,本机方式是使用text item delimiters。每行使用空格(或制表符)分隔固定数量的值,使用text item delimiterstext items和字符串连接,我们可以解决您的问题。

我在字符串的前面和后面添加了一个附加换行符,以显示不包含4个单词的行被忽略。

set theString to "
v 0.186472 0.578063 1.566364
v -0.186472 0.578063 1.566364
v 0.335649 0.578063 1.771483
"
set theLines to paragraphs of theString

set oldTIDs to AppleScript's text item delimiters


repeat with i from 1 to count theLines
    set AppleScript's text item delimiters to {space, tab}
    if (count of text items of item i of theLines) = 4 then
        set theNumbers to text items 2 thru -1 of item i of theLines
        set AppleScript's text item delimiters to ", "
        set item i of theLines to "(" & (theNumbers as string) & "),"
    else
        set item i of theLines to missing value
    end if
end repeat

set theLines to text of theLines
set AppleScript's text item delimiters to linefeed
set newString to theLines as string
set AppleScript's text item delimiters to oldTIDs
return newString