Как я могу преобразовать серию слов в верблюжий регистр в AppleScript?

Я пытаюсь изменить Dragon Dictate, который может выполнять AppleScript с серией произнесенных слов. Мне нужно выяснить, как я могу взять строку, содержащую эти слова, и преобразовать ее в верблюжий регистр.

on srhandler(vars)
    set dictatedText to varDiddly of vars
    say dictatedText
end srhandler

Итак, если я настрою макрос для выполнения вышеуказанного скрипта, называемого верблюдом, и скажу «верблюжья строка со строкой», для dictedText будет установлено значение «строка со строкой». Это крутая особенность ДД. Однако я не знаю AppleScript, поэтому я не знаю, как преобразовать «строку со строкой» в верблюжий регистр, то есть stringWithString.

Если бы я мог изучить эту базовую вещь, я, возможно, смог бы наконец-то начать голосовое программирование, что было бы лучше, чем иметь дело с клавиатурами чиклетов и геймерскими клавиатурами, которые широко распространены, но я считаю их ужасными.


person Ebu    schedule 28.06.2015    source источник
comment
не могли бы вы привести практический пример   -  person vadian    schedule 28.06.2015
comment
Тот же вопрос для Dragon в Microsoft Windows: Как я могу использовать CamelCase фразу с расширенным сценарием Dragon NaturallySpeaking?   -  person Franck Dernoncourt    schedule 06.06.2017


Ответы (1)


Если вам нужно только преобразовать фразу в верблюжий текст, я бы сделал это следующим образом:

set targetString to "string with string"
set allCaps to every character of "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
global allCaps
set camel to my MakeTheCamel(targetString)

to MakeTheCamel(txt)
    set allWords to every word of txt
    set camelString to ""
    repeat with eachWord in allWords
        set char01 to character 1 of (eachWord as text)
        set remainder to characters 2 thru -1 of (eachWord as text)
        repeat with eachChar in allCaps
            if char01 = (eachChar as text) then
                set camelString to camelString & (eachChar as text) & (remainder as text)
                exit repeat
            end if
        end repeat
    end repeat
    return camelString
end MakeTheCamel

Поскольку AppleScript считает "a" = "A" истинным, вам нужно только сравнить любую желаемую букву с ее заглавной буквой и заменить ее.

Надеюсь, это поможет.

person Craig Smith    schedule 29.06.2015