Zaznacz stronę

Tworzenie tablicy z ciągu znaków – AppleScript

AppleScript pozwala na ustawienie separatora, po którym będzie dzielił tekst. Umożliwia także łączenie elementów tablicy w ciąg znaków. Domyślne separator jest ustawiony na {“”}, dzieląc tekst po każdym znaku.

W prosty sposób możesz go zmienić, przykładowo na spacje:

set AppleScript's text item delimiters to space

lub w innej formie:

set AppleScript's text item delimiters to {" "}

Wykonując teraz polecenie:

set exampleText to "AppleScript jest niesamowity!"
set array to exampleText's text items
array
-- {"AppleScript", "jest", "niesamowity!"}

Aby odwołać się do 2 elementu tablicy:

item 2 of array
-- "jest"

A co w przypadku, gdy chcesz złączyć elementy tablicy w pojedynczy ciąg znaków oddzielony przecinkami? Nic prostszego, definiujesz separator:

set AppleScript's text item delimiters to {", "}

Po czym wykonujesz prosty kod:

set exampleArray to {"ls", "cd", "cat", "cp", "mv", "ln"}
set shellCommands to exampleArray as string
shellCommands
-- "ls, cd, cat, cp, mv, ln"

Poniżej przedstawiam gotową funkcję split oraz jej wykorzystanie

on split(value, delimiter)
    set delimiterBackup to AppleScript's text item delimiters
    set AppleScript's text item delimiters to delimiter
    set value to value's text items
    set AppleScript's text item delimiters to delimiterBackup
    return value
end split

set shellCommands to split("ls, cd, cat, cp, mv, ln", {", "})

shellCommands
-- {"ls", "cd", "cat", "cp", "mv", "ln"}

item 4 of shellCommands
-- "cp"

Jak w szybki sposób zmusić twojego Maca do gadania?

Przy pomocy prostego kodu AppleScript, możesz wywołać okno dialogowe, w którym zostaniesz poproszony o wprowadzenie tekstu. Tekst zostanie “przeczytany” przez wbudowany w system syntezator mowy.

set message to ""
repeat while (message = "")
    set result to display dialog "Say text" default answer ""
    set message to (text returned of result)
end repeat
say message

Po zainstalowaniu w systemie polskiego głosu “Agata”, możesz go wykorzystać w skrypcie. Wystarczy zmodyfikować ostatni wiersz:

say message using "Agata"