редакции Выбор
Как быстро привести текст в божеский вид
Как-то внимательность помогла сдать экзамен по бухгалтерии группе юристов. Первым пошёл на экзекуцию, неся на животе рюкзак с маломесячной дочкой. Преподаватель думала, что ребёнок станет точкой давления на жалость, но этого не потребовалось. Упражнение заняло пять минут, шедшие после справлялись быстрее.
Декан нашёл виновника «выдающихся» знаний, и меня вызвали «на ковёр». При условии действительности полученных оценок рассказал секрет: на третьем вопросе стал очевиден недочёт компьютерной программы — перед верным ответом стоял лишний пробел. Заметить помогла привычка выравнивать текст ассемблера.
Вторая встреча с непечатаемым знаком настигла через 15 лет корпоративной жизни. Оказалось, лишний пробел в договорах потребительского кредитования приводил к ежегодному расходу дополнительных $80’000. Такова сила масштаба и цена невнимательности к рядовым мелочам. Кто бы знал, что пустота имеет «вес»?
Совершенствуя стилистику нормативной
базы, в 2013 году наткнулся на потрясающий документ «РИА Новости»: 20 страниц
доходчивой инфографики наглядно и придирчиво демонстрировали неочевидные правила
оформления текста. Начались доказательные бои с методическими подразделениями и
канцелярией. Появилась «дурацкая»
привычка «доводить» документ до ума, прежде чем дать ответ по существу. Искоренял
двойные пробелы, восстанавливал «справедливое» тире, следил за корректностью
написания цен. Полюбил неразрывные пробелы у коротких слов, стал козырять
верными видами кавычек: «ёлочек и „лапок“». Научился ставить «ё»,
отбивать тройки цифр в числах, запомнил правила сокращений. Бесило только одно:
приходилось постоянно объяснять коллегам, как и что следует писать. Нередко
подкатывало отчаяние, а в мечтах зрела идея о «кнопке», нажав которую, получал
бы идеальный документ. Три недели назад на
занятиях Школы траблшутеров по Excel знаниями блеснул новый
ученик — студент 3-го курса Факультета вычислительной математики и кибернетики
МГУ Максим Мухтаров. Договорились написать группу макросов «Корректор» для исправления
очевидных ошибок и выдачи гипотез, о которых молчит Word. Создавая инструмент
«Типограф» начали с простых замен: 1) двойных
пробелов на одинарные 2) недопустимых
удвоений знаков препинания 3) дефисов и
сверхдлинных тире, обрамлённых пробелами, на корректные аналоги и удалений: 4) непечатаемых
знаков перед концом строк 5) пробелов в
качестве последних символов в ячейках таблиц 6) мягких переносов
слов, произраставших из «древних» источников. Кнопке «Разместить»
(слева внизу формы) придали функциональность, которой Word лишён начисто: аккуратно разместить панель макроса рядом с окном
редактирования файла, чтобы не заслонять текст: Занялись сокращениями, пишущимися с неразрывным пробелом: «т. е.», «т. п.»,
«т. д.»., «т. к.», «т. ч.», «н. э.». Продолжили единицами
измерений, после которых точка противопоказана: И сокращениями, в
которых она обязательна: Учли требование неразрывности 1-3 буквенных предлогов с последующим словом: И аналогичное правило для союзов: Междометиями решили не
заморачиваться — редки в деловых текстах, а вот на вкладку «Формулы» вынесли
правила написания арифметических действий, операций сравнения и указания времени: Особыми посчитали случаи,
когда: 1) текст
содержит неявные гиперссылки, выглядящие как обычный стиль 2) слова состоят
из смешанных букв — латиница и кириллица, нераспознаваемые Word 3) необходимо
посчитать количество глав документа или приблизительное время чтения: Слова смешанных букв массово обнаружились в переменных исследований, наткнулись
на неочевидное символоподобие: написание английского слова party
через
кириллическое «г». Поняли, что Word не позволяет быстро
дать «язык» блоку текста и создали выделенные кнопки для английского и
русского. После коррекции очевидных
и бесспорных небрежностей увлеклись гипотезами: 1) кавычки,
знаки валют, проценты 2) лишние
переводы строк, групповые табуляции 3) многоточие
как символ, а не цепочка трёх знаков: Не смогли остановиться и перешли
к более сложным случаям. Знаете, как сочетаются восклицательный и вопросительный
знаки? Второй всегда идёт первым: «?!», а дружат с многоточием так: «!..» и
«?..»: Гипотезы, работающие с вероятностью ниже 50%, решили не отбрасывать — перенесли
на вкладку «Слабые», чтобы продолжить исследование и уточнить правила. Здесь же
разместили разделение на триады четырёхзначных чисел, начинающихся единицей и
двойкой — чаще оказываются годами: Пройдясь по старым
документам, с удивлением узнали, что многие содержат численные помарки.
Количество неточностей доходило до сотни на многостраничный файл. Решили
разработать инструмент «Ищейка», чтобы в потоковом режиме собирать ошибки для
анализа или массово править автоматически: Начали со сбора неточностей
силами самого Word: спрашивали программу, какие слова неизвестны.
После обработки 100 документов «родился» файл на 32’000 сводных ошибок: Стали править очевидные упущения
вроде слова «ее». Программа проверки орфографии Microsoft предлагает варианты: «ею», «ещё», «еде», «еже», «еле», хотя не верен ни
один. Так родился «Ёкатор», исправляющий ошибки забывчивости «ё» поштучно или
сразу все: Столкнулись с полезным сопутствующим
эффектом: исправленные документы ожили красными и голубыми подчёркиваниями.
Выяснили, что Word имеет ограничение на количество отмечаемых
спорных фрагментов текста, но так увлеклись добавлением слов, содержащих «ё»,
что уткнулись в новую границу. Оказалось, есть предел
количеству кнопок на формах макросов. Пришлось написать процедуру «собственных»
элементов управления, мимикрируя под стиль Microsoft. Смогли обеспечить коррекцию 73% ошибок на девяти вкладках. Начали
переходить от фрагментов текста
к словоформам, но об этом напишем в другой раз. Разобрались, что Word медленно работает с гиперссылками, — поняли, что ошибки следует искать не с
начала документа, а после оглавления — на нём программа жутко «тормозит». Очередным шагом стала
попытка «Ищейки» массово оценивать количество ошибок в файлах и править в
автономном режиме на уровне папок: Так, мы за 24 дня (работая вдвоём по 4 часа в сутки, включая время
исследований) создали пресловутую «кнопку», приводящую в экстаз редакторов СМИ
и педантичных читателей. Динамика размера «Корректора» отражает попытки
оптимизации кода для ускорения работы макроса: Не зря говорят: «Желание и труд всё перетрут». Чего и вам искренне желаем! Читайте также: Бесплатные курсы программирования от самых лучших ВУЗов мира: подборка Где открыть бизнес и как сфокусировать мобильную рекламу