2015-08-31 255 views
1

我需要刪除文本字符串AppleScript中的最後一個字符。這證明了比我想象的更困難的問題。 有人可以解釋這將如何完成?AppleScript:刪除文本字符串中的最後一個字符

+0

待辦事項你有一個腳本到目前爲止,你的文本字符串?如果是這樣,請編輯您的問題以顯示您當前的腳本。 –

回答

3

試試這個

set t to "this is a string" 
text 1 thru -2 of t 

輸出:

「這是一個〜應變」

3

悲憫。它應該是一項微不足道的任務(在大多數語言中它只是調用內置的「修剪」功能的問題),但是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 

你可能會考慮在AppleScript book投資(注:我合寫的Apress的一個),這往往涵蓋常用的文本和列表處理任務比的AppleScript自己的文檔要好得多。

另一種選擇是通過AppleScript-ObjC橋接呼叫Cocoa,使您可以免費訪問大量的隨時可用的功能。這有點多,但對於更高級的文本處理任務來說,它通常是最簡單,最安全和最有效的解決方案。如果/當你這樣做時,我建議你得到謝恩斯坦利的Everyday AppleScript-ObjC的副本。

0
tell application "Safari" 
    open location "https://www.youtube.com/watch?v=IxnD5AViu6k#t=152.07430805" 
    delay 1 
end tell 
delay 1 

tell application "Safari" 
    set theURL to URL of front document as text 
end tell 

if theURL contains "#" then 
    repeat until theURL does not contain "#" 
     set theURL to text 1 thru -2 of theURL 
    end repeat 
end if 
-1

我覺得這是有趣的http://applehelpwriter.com/2016/09/06/applescript-remove-characters-from-a-string/

本質上講,你可以導入Foundation幫你

use scripting additions 
use framework "Foundation" 
property NSString : a reference to current application's NSString 

這是我如何刪除最後一個路徑組件

on myRemoveLastPath(myPath) 
    set myString to NSString's stringWithString:myPath 
    set removedLastPathString to myString's stringByDeletingLastPathComponent 
    removedLastPathString as text 
end myRemoveLastPath 
相關問題