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

Каждый, кто часто работает с текстами и оперирует такими понятиями, как «количество знаков» или «количество слов», ощущает острую необходимость в редакторе с текстовым счетчиком. Программы 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 и т.д. В Тотал коммандаре можно было настраивать и он сам переименовывал все новые файлы, добовляемые в папку. А по автоматору я нашел функцию переименования, но только придется создовать отдельную службу для каждой папки. А можно ли иначе вот в чем мой вопрос.
Читать все комментарии