是否需要恢复文本项分隔符?

时间:2013-01-30 07:02:23

标签: applescript

使用文本项分隔符的常用方法如下:

set tid to AppleScript's text item delimiters
set AppleScript's text item delimiters to "x"
set l to text items of "aaxbb"
set AppleScript's text item delimiters to tid
l

我通常做这样的事情:

set text item delimiters to "x"
text items of "aaxbb"

http://macscripter.net/viewtopic.php?id=24725

  

重要的是要注意以下信息:“总是设置它们”。 AppleScript会记住它的分隔符设置。即使您在脚本编辑器中打开了新的第二个脚本,您在第一个脚本中设置的分隔符也将在第二个脚本中应用。

虽然我无法重现它。某些版本的OS X中的行为是否发生了变化?

AppleScript: The Definitive Guide

  

只要AppleScript脚本组件的此实例执行,文本项分隔符的值就会一直存在。因为您可能在此脚本组件存在的情况下运行多个脚本,其中任何一个脚本组件都可能设置文本项分隔符,所以明智的做法是不对文本项分隔符的值进行假设。

是否仍然如此,或者您是否可以提供文本项分隔符属性影响其他脚本的任何示例?

3 个答案:

答案 0 :(得分:3)

我记得你正在读一些关于你正在谈论的这种变化,不再需要重置它们,但是在Google搜索之后我找不到任何关于它的信息。因此我做了一个快速测试。我制作了这两个脚本并在AppleScript编辑器中运行它们。首先是这个...

set text item delimiters to "something"
return text item delimiters

然后这个......

return text item delimiters

第二个脚本返回{“”}。所以看起来第一个脚本不会影响第二个脚本。我在10.6和10.8中对此进行了测试,结果相同。

这是Applecript发行说明。我找不到10.7或10.8的发行说明。搜索他们在这个问题上没有任何结果......

http://developer.apple.com/library/mac/#releasenotes/AppleScript/RN-AppleScript/RN-10_3/RN-10_3.html#//apple_ref/doc/uid/TP40000982-CH103-SW1

因此,我没有确切的答案。每个人都说要重置它们,但我的简单测试显示它不是必需的。

你也是对的,你不需要在“告诉区块”之外使用“Applescript”。

答案 1 :(得分:3)

我在AppleScript Fundamentals>部分的https://developer.apple.com/library/mac/#documentation/applescript/conceptual/applescriptlangguide/conceptual/ASLR_fundamentals.html上找到了这个消息。 AppleScript中的全局常量>文本项分隔符:


如果在“脚本编辑器”中更改文本项分隔符属性,它将保持更改状态,直到您恢复其先前的值或退出脚本编辑器并再次启动它为止。如果在脚本应用程序中更改文本项分隔符,它将在该应用程序中保持更改,直到您恢复其先前的值或脚本应用程序退出为止;但是,在脚本编辑器或您运行的其他脚本应用程序中不会更改分隔符。


答案 2 :(得分:0)

如果你运行一个脚本应用程序,那么我觉得从技术上来说没有必要休息它们,因为一旦它退出,它就会退出!

但是如果您在脚本编辑器中运行脚本,那么对分隔符的更改将保留在脚本编辑器中的脚本中。我今天刚刚看到了。

但是几年前改变的是它 NOT 影响在脚本编辑器中打开的其他脚本/窗口。

此外,当作为应用程序运行时,它只影响该特定脚本。