1

фрагмент 1а

on removeText(searchText, sourceText)
set prevTIDs to text item delimiters of AppleScript
set text item delimiters of AppleScript to searchText
set sourceText to text items of sourceText

set text item delimiters of AppleScript to ""
set sourceText to "" & sourceText
set text item delimiters of AppleScript to prevTIDs

return sourceText
end removeText

фрагмент 2а

on removeText(searchText, sourceText)
set prevTIDs to text item delimiters of AppleScript
set text item delimiters of AppleScript to searchText
set sourceText to text items of sourceText

set text item delimiters of AppleScript to ""
set sourceText to "" & sourceText
set text item delimiters of AppleScript to prevTIDs

return sourceText
end removeText

set theSentence to "I love Windows and I will always love Windows."
set theSentence to removeText("Windows", theSentence)

Я обнаружил, что эта подпрограмма (фрагмент 1а) удобна в фрагменте 2а и хочу использовать ее повторно, называя ее имя. Я погуглил как. Затем я сохранил фрагмент 1a как /Users/henry/Library/Script\ Libraries/text.scpt и в фрагменте 2a заменил

фрагмент 1b

on removeText(searchText, sourceText)
set prevTIDs to text item delimiters of AppleScript
set text item delimiters of AppleScript to searchText
set sourceText to text items of sourceText

set text item delimiters of AppleScript to ""
set sourceText to "" & sourceText
set text item delimiters of AppleScript to prevTIDs

return sourceText
end removeText

с

фрагмент 3

use script "text"

и получил фрагмент 2b, а затем я запустил фрагмент 2b, но я получил сообщение о том, что «script» doesn’t understand the “removeText” message.

Ссылка: "оператор использования" (обратитесь к части, найденной путем поиска use script "Happy Fun Ball" в https://developer.apple.com/library/mac/documentation/applescript/conceptual/applescriptlangguide/reference/ASLR_control_statements.html)

Поэтому я вернулся в Google и нашел один, предлагающий сохранить фрагмент 1a как «приложение-скрипт».

Ссылка 2: внизу https://developer.apple.com/library/mac/documentation/applescript/conceptual/applescriptlangguide/conceptual/ASLR_about_handlers.html

В этом примере это

фрагмент 4

tell application "NonStayOpen"
launch
stringTest("Some example text.")
end tell

поэтому я экспортировал фрагмент 1a как /Users/henry/Library/Script\ Libraries/text.app и написал фрагмент 2c

фрагмент 2с

tell application "text"
launch
set theSentence to "I love Windows and I will always love Windows."
set theSentence to removeText("Windows", theSentence)
end tell

Затем я запустил его и получил ошибку {} doesn't match the parameters {searchText, sourceText} for removeText.

После этого я сначала попытался добавить removeText(searchText, sourceText) к фрагменту 1a (получение фрагмента 1c) и экспортировал его для замены /Users/henry/Library/Script\ Libraries/text.app но получил ошибку при запуске; произошел сбой;

во-вторых, заменить removeText(searchText, sourceText) на removeText() в фрагменте 1a (получение фрагмента 1d) и экспортировать его для замены /Users/henry/Library/Script\ Libraries/text.app но при запуске возникла ошибка. Ошибка.

В фрагменте 2а, как мне вызвать / повторно использовать подпрограмму (фрагмент 1а) из другого AppleScript или «приложения-скрипта» (см. Ссылку 2)?

1 ответ1

0

Вот что я использую во многих AppleScripts:

set iTunesFunctions to load script "Users:jim:Library:iTunes:Scripts:iTunes Functions.scpt" as alias
CaseCorrection() of iTunesFunctions

Если вы сохранили файл, содержащий snippet1a, в «MyFunctions.scpt», ваш код будет выглядеть так:

set MyFunctions to load script "MyFunctions.scpt" as alias
snippet1a(searchText, sourceText) of MyFunctions

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .