AppleScript:删除文本字符串中的最后一个字符

Dei*_*ign 1 applescript

我需要删除文本字符串AppleScript中的最后一个字符。事实证明,这比我想的要困难得多。有人可以解释如何做到吗?

foo*_*foo 6

同情。这应该是一个微不足道的任务(在大多数语言中,这只是调用内置“修剪”函数的问题),但 AppleScript 的库支持绝对糟糕,并且社区本身没有采取任何措施来填补这些空白,因此您必须滚动您自己的临时处理程序甚至可以处理像这样的基本日常事务。例如:

on trimLastChar(theText)
    if length of theText = 0 then
        error "Can't trim empty text." number -1728
    else if length of theText = 1 then
        return ""
    else
        return text 1 thru -2 of theText
    end if
end trimLastChar
Run Code Online (Sandbox Code Playgroud)

您可能会考虑购买一本AppleScript 书籍(注:我与他人合着了 Apress 书籍),该书往往比 AppleScript 自己的文档更好地涵盖常见文本和列表处理任务。

另一种选择是通过 AppleScript-ObjC 桥调用 Cocoa,让您免费访问大量即用型功能。这需要更多的工作,但对于更高级的文本处理任务,它通常是最简单、最安全和最有效的解决方案。如果/当您这样做时,我建议您获取 Shane Stanley 的Everyday AppleScript-ObjC的副本。


CRG*_*een 5

尝试这个

set t to "this is a string"
text 1 thru -2 of t
Run Code Online (Sandbox Code Playgroud)

输出:

“这是一条路”