Automator: подсчет объема текста в любой Мак-программе

6

Каждый, кто часто работает с текстами и оперирует такими понятиями, как «количество знаков» или «количество слов», ощущает острую необходимость в редакторе с текстовым счетчиком. Программы Pages, Word, Byword и им подобные оснащены таким средством.

Но не пропускать же через эти приложения любой текстовый фрагмент, когда нужно выяснить его объем — это не всегда удобно. Чтобы счетчик знаков, слов и абзацев был всегда под рукой, можно воспользоваться «Автоматором», создав в нем очень простую службу.

Запускайте Automator и в списке новых процессов выберите тип Служба. С самого начала настроим нашу будущую службу: в заголовке области конструктора выберите в верхних двух выпадающих списках пункты текст (text) и любой программе (any application), соответственно.

Теперь из бокового меню, из раздела Библиотеки > Утилиты, перетащите в область конструктора действие Запустить AppleScript (Run AppleScript). В области кода этого действия уже будет стандартная заготовка — замените ее на следующий код:

on run {input, parameters}

try

--Перевод входного текстового массива в строковый формат

set MyText to input as string

--Определение и запись в переменные числа знаков, слов и абзацев

set CharactersNumber to the number of characters of MyText

set WordsNumber to the number of words of MyText

set ParagraphsNumber to the number of paragraphs of MyText

--Формирование внешнего вида диалогового окна

set DialogIcon to ("///System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/ClippingText.icns") as POSIX file

set DialogTitle to "В выбранном текстовом фрагменте:"

set ResultString to "Знаков: " & CharactersNumber ¬

& return & "Слов: " & WordsNumber ¬

& return & "Абзацев: " & ParagraphsNumber

--Отображение диалогового окна с определенными выше значениями

using terms from application "Finder"

display dialog ResultString ¬

with icon DialogIcon ¬

buttons {"OK"} default button 1 ¬

with title DialogTitle

end using terms from

--Обработчик ошибочной ситуации

on error errmsg number errnum

display dialog errmsg & " [" & errnum & "] " ¬

buttons {"OK"} default button 1 with icon stop

end try

return input

end run

Собственно, и все. Остается только сохранить эту службу под названием, например, Статистика и проверить ее на деле — хотя бы на примере веб-браузера.

Загрузите какую-нибудь веб-страницу с более-менее объемным текстом, выделите произвольный фрагмент и щелкните на нем правой кнопкой мыши — в контекстном меню должна появиться команда Статистика (она может находиться в группе Службы). Нажав ее, вы увидите результат работы службы — маленький диалог с требуемой информацией о выделенном тексте:

Это упрощённая версия страницы.

Читать полную версию
Если нашли ошибку, выделите текст и нажмите Ctrl + Enter
Никита Бегун
30.08.12 12:27
О, супер, спасибо!
Игорь
31.08.12 22:09
Где этому учат?
Alexander Zhurovich
02.09.12 11:16
Может, где-то и учат, но и самому это освоить можно. Вы задавайте вопросы, вносите предложения по написанию статей. «Автоматор» — очень недооцененная программа, и мне было бы приятно кого-нибудь научить ею пользоваться. Вот эти статьи — некая попытка хотя бы заинтересовать желающих. :)
Mihail Tugushev
03.05.14 20:48
Здравствуйте. Меня интересует как оптимизировать документооборот через автоматор. У меня много проектов и для каждого я завожу отдельную папку. Внутри папки все файлы начинаются с названия папки, а потом после идет описание самого файла. Например: Zvezdochka/Zvezdochka_info_clien.txt и т.д. В Тотал коммандаре можно было настраивать и он сам переименовывал все новые файлы, добовляемые в папку. А по автоматору я нашел функцию переименования, но только придется создовать отдельную службу для каждой папки. А можно ли иначе вот в чем мой вопрос.
Читать все комментарии