Обзор RQ Search and Replace, MultiReplace и @Text Replacer - утилит для замены текста в файлах. Справка

Новости 30.04.2019
Новости

Благодарю коллег за серьезное отношение к высказанным мною замечаниям, относящимся именно к _кодам_, а не личностям (поэтому предполагаю, что особой защиты swan"у все же не потребуется, тем более, что как к непрограммисту к нему не может и быть каких-то замечаний - только благодарность!).

Что касается доведения макроса "до ума", то м.б. WordExpert - это именно то место, где можно было бы вести постоянный заочный виртуальный семинар по программированию, в т.ч. на VBA. В рубриках сайта подобной пока просто не нашел (возможно, она по-другому называется) и, м.б., она могла бы быть некоей "изюминкой" WordExpert.

Что касается макросов SR (swan) и S&R (Funduc), то они прекрасно бы подошли для первых "виртуальных семинаров", т.к. задача четко поставлена, есть материал для анализа и перечень желательных доработок. Остается найти заинтересованную аудиторию:)...

Однако при этом не обойтись без технологии групповой работы над текстом: скачивать разные версии кода с комментариями, конечно, можно, но уложить (для обсуждения)всю ширину страницы редактора VBA в узкие рамки колонки форума (или чего-то подобного) - непросто. Даже настоящий - просто текстовый форум отзывов - по сравнению с форумами других сайтов непривычен, т.к. "сжат по ширине" примерно вдвое. А программисты любят простор и на бумаге, и на экране... :)

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

Если же говорить собственно о методике семинара, то первым должен, видимо, выступить именно SWAN (как и на настоящем семинаре) и, т.к. он уже разбирался в коде, представить коллегам (подробную) постановку задачи и укрупненное описание проанализированного им макроса (скажем, на псевдокоде). После этого можно было бы "step by step" разобрать и обсудить отдельные подблоки (модули, процедуры, описания, приемы, etc.) программы.

Что касается дальнейшего развития семинара, то я мог бы предложить для анализа и доработки текст пакета макросов "Перестройка" (кстати, его применение снимает многие проблемы пользователей word, см. http://soft.softodrom.ru/ap/p372.shtml), за который его автор (С.М.Хозяинов) получил когда-то первый приз на сайте MS office extension (почему-то на этот полезный ресурс здесь ссылки нет). К сожалению, автор перестал поддерживать проект еще 5 лет назад, но потребность в этом инструменте большая и переделать старые общедоступные коды (для w97) под новое (Of-2007) приложение было бы очень полезно всему ИТ-сообществу. Но опять же: есть ли желающие - будущие "семинаристы"?

Последняя просьба: видимо, я не заметил отметки, что присылаемые отзывы премодерируются и послал свой текст дважды. М.б. стоит где-нибудь отметить этот момент (премодерацию) на страничке форума? И еще: через какое время устаревает "защитный код"? Начинаешь писать, через какое-то немалое время заканчиваешь, а тут сайт всю форму сбрасывает и "ругается": пиши, дескать, по новой и давай новый защитный код!

Средство поиска и замены текстов по маске. Программа умеет находить и заменять в тексте не только строго заданные слова и фразы, а нечто, подходящее общему заданному шаблону и менять части найденного текста.

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

Допустим, во всем сайте (страниц на сто) надо добавить всплывающие подсказки к картинкам. Или поменять ссылки с внутренних страниц на внешние. Все это можно сделать вручную или при помощи штатной "Замены" Блокнота, например. Но можно использовать и специальные программы.

Такие программы дают возможность быстро производить замену текста в нескольких файлах одновременно, что значительно сокращает время обработки группы документов или сайта. Одним из лидеров в этом направлении является программа Словогрыз .

Из платных аналогов можно отметить Text Replacer, который, несмотря на свой потенциал, все же явно уступает бесплатному "брату".

Сравнение программы для поиска и замены Словогрыз с платным аналогом Text Replacer

Единственным серьезным недостатком Словогрыза является отсутствие поддержки стандартных Word"овских документов. В остальном же - это очень мощное приложение (особенно, учитывая возможность работы со сценариями).

Словогрыз не требует установки, поэтому, скачав архив, распаковываем его и можем работать. Для начала запустите файл TR.exe.

Интерфейс Словогрыза

Перед нами рабочее окно Словогрыза. Это окно можно разбить условно на несколько секций. Вверху - панель меню. Здесь Вы сможете произвести нужные настройки, добавить файл, сценарий или просто посмотреть справку (рекомендую перед началом использования).

Ниже находится список файлов или содержимого буфера обмена (по выбору), а также варианты замены (в содержимом или в именах файлов) текста.

Под списком помещена панель управления заменой. Она предоставляет возможность ввести маски поиска и замены, и перекодировать результат в одну из кодировок на выбор. Панель управления резервными копиями позволяет сохранить исходный вариант изменяемого текста и при желании восстановить его (кнопка "Вернуть").

Пример работы с программой

Основной смысл элементов управления, я думаю, ясен, а с принципами работы мы сейчас ознакомимся. Сначала найдем и откроем какие-либо файлы, в которых требуется что-то изменить. Для этого нажимаем кнопку "Добавить" и выбираем их.

Это сайт, который будет переноситься на новый хостинг, поэтому в нем требуется изменить имена всех страниц на новые.

Чтобы изменить имя страниц, мы вводим его в "Маску Поиска", а результат, который хотим получить (то есть новое имя), печатаем в "Маску Замены". Теперь остается только нажать кнопку "Заменить" и мы получим полностью измененные файлы.

Откроем тот же файл, который открывали вначале и проверим все ли корректно изменено:

Да! Во всех файлах имена страниц поменялись, и мы сэкономили себе уйму времени!

Дополнительные возможности

"Это все хорошо", - скажете Вы, - "а зачем еще можно использовать Словогрыз"? Вот Вам простой пример: на сайт надо добавить к картинкам теги title , которые будут отображать всплывающие подсказки с названием программы.

Для этого определимся с местом расположения тега (в нашем примере перед тегом alt… ) и указать маской поиска следующий тег. В "Маску Замены" напишем окончательный вариант строчки кода (переменная php echo $soft_name; определяет имя программы) и нажимаем "Заменить":

Посмотрим, что получилось:

Теги title благополучно добавлены.

Но плюс Словогрыза не только в том, что он может заменять готовый текст, а еще и в том, что с его помощью можно задавать изменения по маске, то есть заведомо неизвестному тексту или символам!

Как это работает, Вы можете увидеть, почитав справку. От себя же скажу, что чаще всего удобно использовать условный символ "\*" для обозначения любого количества букв до или после определенного слова.

Пример. В предыдущем варианте мы добавляли тег title… , а теперь удалим его:). Допустим, после добавления в файлы мы изменили каждый тег вручную, добавив какой-то текст.

Теперь же требуется удалить все изменения. Загружаем все файлы, которые надо изменить и в поле маски поиска вводим: title=\* . Символ "\*" означает, что после основного тега может идти любой текст. Для того чтобы удалить ненужное, оставляем поле маски замены пустым и нажимаем "Заменить". Все готово!

Но и это еще не предел возможностей Словогрыза. Как я уже говорил, он поддерживает работу со сценариями, то есть за один раз мы можем произвести не одну, а целый ряд замен.

Создание сценариев замены текста

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

Все это можно легко привести в божеский вид при помощи Словогрыза. Нажимаем кнопку "Сценарии" и начинаем составлять скрипт для удаления и замены всего ненужного. Чтобы добавить новую строчку в сценарий, надо указать маску поиска и маску замены для конкретного случая в окне программы, затем перейти в окно скрипта и нажать кнопку "Добавить". Новая строчка готова!

Для следующей замены повторим те же действия. В итоге у нас появится целый список действий, которые надо произвести над файлом. Чтобы запустить сценарий нажмем кнопку "Выполнить".

Теперь можно посмотреть, что же получилось в итоге:

Как видим, от лишних тегов не осталось ни следа - все культурно и красиво:). Теперь можно провести небольшую корректировку и оптимизировать страничку.

Если для поиска Вы часто используете одни и те же лексемы или их пары (поиск и замена), то их можно занести в Библиотеку, чтобы каждый раз не вводить заново. Принцип работы Библиотеки тот же, что и в случае со сценариями.

Выводы

Лично я для себя открыл действительно чуть ли не панацею ото всех проблем в работе с Интернет-страничками. Ведь со Словогрызом можно за пару минут изменить параметры целого сайта, подкорректировать его наполнение или внедрить новый скрипт! Используйте Словогрыз и будет Вам счастье:)!

P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.


Иногда возникает необходимость заменить определенный кусок текста в нескольких документах: например, сменить пути установки в серии конфигурационных файлов или быстро изменить оформление в серии каких-нибудь договоров и т. д. Конечно, можно открыть каждый файл в редакторе, произвести поиск и замену штатными средствами; но если этих файлов больше десятка, то ручная работа становится весьма нудной, а если их больше полусотни, то это просто трата времени. Для решения таких задач есть специальные программы-автоматизаторы, три из которых - RQ Search and Replace, MultiReplace и @Text Replacer - будут рассмотрены в этом обзоре. Каждая из них имеет разные возможности и, в общем-то, разную область применения.

@Text Replacer

Программа @Text Replacer от компании – наиболее простая из всех трех. Стоимость полной версии - 118 рублей. Незарегистрированная версия позволяет проводить поиск и замену только в текстовых файлах (не обязательно txt – это может быть любой файл, данные в котором написаны открытым текстом: ini, html и т. д.) и не поддерживает режим командной строки. Тем не менее для большинства случаев такая функциональность вполне подойдет.

На вкладке "Текст и расположение" надо указать путь к файлу или файлам (допускаются стандартные подстановочные символы * и?), что заменять и на что заменять. Флажок "Просмотреть вложенные папки" позволяет произвести замену не только в указанной папке, но и во всех ее подпапках. На вкладке "Дополнительно" можно указать игнорируемые символы (полезно, если текст разбит символами конца строки, например тексты с lib.ru, или между словами стоит больше одного пробела), установить классическую опцию "Учитывать регистр" и ввести путь к файлу, где будет сохранен отчет о переименовании.

После выставления всех опций и нажатия кнопок "Заменить" или "Найти" программа выдаст список обработанных файлов внизу основного окна. Форму выдачи результатов можно изменить в меню "Вид" - любой вариант из стандартных "Список", "Таблица" и т. д. К сожалению, какой бы пункт вы ни выбрали – программа выдаст только перечень файлов, а не искомые места в них. Впрочем, вооружившись любым просмотрщиком текста (например, встроенным в Total Commander), в них легко можно отыскать нужные строки.

Замечание: хотя @Text Replacer не поддерживает нестандартные методы замены, наподобие "Вставить Б между А и В", это не значит, что обязательно нужна другая программа. Того же эффекта можно добиться, заменив строчку "А В" на "А Б В"; то же самое касается удаления выбранного текста и вставки до и после указанного отрывка. Выделение таких действий в отдельную функцию оправдано при больших кусках для правки, тогда это экономит время.

Multi Replace

Программа Multi Replace предоставлена компанией . Основные поля в программе такие же, как и в предыдущей, – путь поиска, окно исходного текста и текста для замены, но эта утилита заметно функциональней @Text Replacer. Существует две версии программы, незначительно отличающиеся друг от друга, – Lite ($19,95) и Pro ($29,95). Пробная версия полнофункциональна, но ограничена 15 днями.

Среди преимуществ можно отметить более мощную работу с подстановочными символами – разрешается задача диапазона символов через и отмена служебных символов при помощи обратного слеша – "". (То есть комбинацией "*" можно задать поиск в тексте именно символа *, а не любого символа.)

Очень удобен флаг "Помещать результаты в новую директорию", особенно в случае, когда нужно произвести несколько пакетных замен подряд на каком-нибудь бланке. Также можно выбрать типы файлов, которые будут (или напротив – не будут) учитываться при поиске или замене. Что приятно, некоторые из наиболее часто используемых расширений уже указаны в выпадающем меню. Используя кнопки "+" и "-", можно добавлять или удалять их (только в Pro).

Флаг "Многострочный текст" аналогичен флагу "Игнорировать конец строки" в @Text Replacer. Имейте в виду, что в режиме многострочного текста нельзя применить отмену спецсимвола при помощи знака ""!

Групповая замена позволяет задать выполнение нескольких замен одновременно. При наличии большого количества файлов это поможет сэкономить время, равно как и флаг "Экспресс-замена" (выполнение всех замен только с одним запросом).

Среди функций также стоит отметить "Авторезервирование", которое создает копии изменяемых программой файлов. Выполняя автозамену для важных документов, особенно такую, которую нельзя совершить в обратную сторону, будет нелишним поставить этот флажок. Копии будут храниться в папке Backup в директории программы.

Часто случается, что нужно произвести замену несколько сложнее, чем А на Б. Например, нужно вставить в текст отчество между именем и фамилией или просто удалить некоторые куски текста. В таком случае справа от опций можно выбрать нестандартный способ замены.

Все параметры программы можно использовать и для дальнейшей работы с автозаменой, используя иконки "Сохранить параметры замены" и "Загрузить параметры замены" (Только в Pro).

RQ Search&Replace

RQ Search&Replace от MiraSoftware - самая мощная из всех трех программ. Кроме стандартного алгоритма поиска и замены файлов содержит в себе множество дополнительных функций. Демонстрационная версия позволяет обрабатывать или только один файл, или несколько файлов, но не больше 8 килобайт каждый. Выбор можно сделать непосредственно во время работы программы из меню "Помощь". Стоимость полнофункциональной версии – $19.

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

Столбец, озаглавленный "!!!" обозначает активность/неактивность правила, столбец "Операция" - тип действия (замена, удаление, вставка до или после), а столбец "Объект" - тип данных, который будет обрабатываться. Таковых 6:

  • блок - любой массив данных;
  • строка - массив данных до разрыва строки;
  • слово целиком - массив данных, отделенный пробелами;
  • блок, заключенный в..., - все символы между А и Б;
  • MSWord - вызывает отдельное диалоговое окно, в котором можно настроить замену, используя все функции одноименного окна Word, включая спецсимволы;
  • HTML-тег - позволяет удалить теги (вместе с парными закрывающими, что удобно) или модифицировать их: например, заменить аргумент или перевести написание в другой регистр.

Меню "Таблица" дублирует все вышеупомянутые функции, позволяя установить их сразу для нескольких строк.

Из меню "Проект" можно сохранять и загружать параметры поиска и замены, как и в Multi Replace.

В меню "Кодировка" можно указать кодировку, которая будет принята по умолчанию при обработке. Программа умеет работать с Win1251, koi8, DOS-кодировками, а также с UTF8, отдельно вынесенном в меню "Опции".

В следующем пункте – "Просматривать в виде" - можно выбрать способ интерпретации текста в окне предпросмотра. Программа понимает не только обычный plain text, но и RTF, и HTML. (Удобно для редактирования архива веб-страниц, где строки разбиты тегами.)

Меню "Операции" содержит несколько дополнительных алгоритмов, на которых стоит остановиться поподробнее.

Меню Операции

Создать индекс-файл . Работает правильно, только если подсветить в окне выбора файлов.html страницы. Создает файл со ссылками на каждую из страниц. Файл получается абсолютно без всякого оформления, поэтому сгодится или в качестве основы для нормального индекса, или же для внутреннего использования при каталогизации сохраненных веб-страниц.

Text-HTML . Функция, превращающая текст в HTML-страницу. Несмотря на то что мусорного кода операция эта практически не добавляет, для русскоязычного пользователя она абсолютно бесполезна: получившийся из кириллического текста файл с символами вида "’e7" не смогла прочитать ни одна программа, включая саму Search&Replace. С файлами на европейских языках все ОК.

HTML-Text . Производит обратное действие (в этом направлении кириллица обрабатывается нормально), но зачем это нужно – не очень понятно, ведь того же самого можно добиться, просто-напросто выделив текст в любом браузере.

Меню Копии

Удалить файлы нулевого размера . Название функции говорит само за себя. Удаляет все пустые файлы из выбранной папки. Можно запускать в конце работы, чтобы удалить файлы, чье содержимое уже было очищено.

Преобразовать HTML-Unicode в ASCII . Функция позволяет исправить в HTML-файлах некорректно отображенные сервером национальные буквы и спецсимволы. У меня она почему-то не сработала, хотя сам файл обрабатывался верно.

Заменить символы 0-31 . Символы с кодами 0-31 в коде ASCII считаются управляющими, и иногда может потребоваться очистить от них текст (например, убрать лишние переводы строки), для чего и предназначена эта операция.

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

Меню "Копии" и "История папок" дают пользователю гибкие возможности по управлению резервными копиями измененных файлов без необходимости пользоваться файл-менеджером.

Итоговое сравнение

@Text Replacer

Плюсы: низкая стоимость, простота в освоении.

Минусы: ограниченное удобство использования, низкая функциональность.

MultiReplace

Плюсы: удобный и понятный интерфейс, богатый набор фунцкий.

Минусы: из всех представленных программ – самая дорогая, даже Lite.

RQ Search & Replace

Плюсы: огромный набор функций, дополнительные операции, детальный лог всех действий, хорошая цена.

Минусы: несколько громоздкий интерфейс, простые действия занимают больше времени, чем в других программах.

Выводы

Если вам нужна простая программа, чтобы исправить 2-3 строчки в несложных текстовых документах, – @Text Replacer подойдет идеально, если же ваш выбор – сложные и разветвленные алгоритмы замены в разных файлах, то RQ Search & Replace или же Multi Replace.

— утилита для поиска и замены текстовых фрагментов в файлах. Однако, в отличие от стандартных средств многих текстовых редакторов, BK ReplaceEm предназначен для работы с множеством файлов одновременно. Текстовые файлы можно разделять по группам и для каждой группы создавать свои правила поиска и замены.

Программу можно настроить на создание резервных копий изменяемых файлов на случай неправильного результата. Есть возможность задать расширение для backup файлов (по умолчанию это *.backup) и директорию их расположения (изначально резервные копии будут создаваться в папке с изменяемыми файлами). Возможен не только backup, но и сохранение измененных файлов в другой директории.

Выбирать файлы для группы можно по-разному: отдельные файлы, директории, поддиректории, выбор на маске (например, только html файлы: *.html). Однажды созданную группу можно сохранить, чтобы не добавлять файлы каждый раз, когда это необходимо — эдакий аналог playlist в mp3-плеерах:)

Если встроенные в большинство редакторов средства поиска и замены, как правило, позволяют за раз менять только один определенный фрагмент текста, то в BK ReplaceEm легко можно задать сразу несколько строк для поиска и соответственно новых вариантов для замены.

После окончания операции поиска и замены выводится log-файл, позволяющий сделать общие выводы о том, каким изменениям подверглись файлы:

  • какие файлы подверглись обработке,
  • куда были записаны измененные файлы,
  • директорию с backup (если есть),
  • количество операций замены (отдельно для каждого файла) одной строки на другую.

В общем, BK ReplaceEm — это мощное средство для поиска и замены определенных строк сразу во многих файлах. Программа позволяет группировать файлы и применять к группам различные правила поиска и замены строк, а также удобно манипулировать созданием и хранением резервных копий изменяемых файлов.

Все это осуществляется пусть через не очень удобный, но все-таки графический интерфейс, не надо изучать какие-либо скриптовые языки и прочее… Однако для тех, кому это действительно необходимо, в BK ReplaceEm есть поддержка regexpов.

BK ReplaceEm на практике

Хотелось бы привести несколько примеров, где вам может пригодиться BK ReplaceEm. Хотя, думаю, многие уже сами знают в чем лично им поможет эта программа;)

BK ReplaceEM может помочь, например, начинающему веб-мастеру, который уже успел «накатать» несколько десятков html-страниц, но так и не успел подумать о единстве интерфейса и возможных путях простого изменения дизайна. Возможно, человек еще не успел «познать радостей» SSI, template systems языков веб-программирования или использования внешнего javascript-файла с document.write().

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

С помощью BK ReplaceEm проблема решается достаточно просто:

  1. В окне запущенной программы кликаем правой кнопкой мыши на иконку папки с надписью «New Group». Это и есть та самая группа файлов, о которой много говорилось выше. Также можно создать и другую группу («Add Group»).
  2. Выбираем опцию «Add File(s)…». Начнем с вкладки «Source», в которой, собственно, и выбираются файлы для замены.
  3. Присвоив «Source Type» значение «Use Folder», мы заставим программу искать файлы внутри директории, определяемой «Source Path / Folder Path». Эта опция — то, что нужно, ведь, скорее всего, html-страницы сайта аккуратно сложены в определенной папке, а не хаотично раскиданы по жесткому диску компьютера. Также можно поставить фильтр на выбор из указанной директории только html файлов, чтобы BK ReplaceEm не пытался изменить другие текстовые файлы, хранящиеся там же. Для этого в поле «Include File Filter» напишем: «*.html».
  4. Вкладка «Destination» указывает, куда именно складывать файлы после изменения. В данном случае ничего менять не нужно, пусть измененные файлы будут заменять старые версии. Это-то и указано в настройках по умолчанию.
  5. Вкладка «Backup», отвечающая за настройки резервного копирования файлов, тоже не требует изменений: по умолчанию старые версии файлов без изменений будут оставаться в своей директории, но поменяют расширение на backup. Т. е. новая версия главной страницы, например, будет называться index.html, а старая — index.html.backup. Резервное копирование можно и отключить, убрав опцию «Enable file backup».
  6. Все файлы добавлены (можно и сохранить список отобранных файлов на будущее: «File» -> «Save Replace Group»), пора переходить к описанию кого и чем заменять:) Переходим к нижней части окна BK ReplaceEm, представленной в виде двух столбцов.
  7. Жмем правой кнопкой мыши и выбираем в меню «Advanced Edit…». Перед нами два окна: «Search Text» (фрагмент текста, который необходимо найти) и «Replace Text» (то, чем необходимо заменить найденный фрагмент).
  8. В левое окно вводим html-код панели навигации, которая есть в текущих html-страницах. В правое — html-код новой версии панели навигации. Традиционный в таких случаях «OK» и…
  9. Барабанная дробь! Дрожащей рукой (Кстати! Почему дрожащей? Ведь backup же включен? Ну ведь правда!?) выбираем в основном меню «Replace» -> «Start Replacing» или нажимаем +. Все!
  10. На экране появится log-файл, который можно изучить на предмет соответствия желаемого и действительного.

Надеюсь, этот простенький пример поможет вам быстрее разобраться с достаточно запутанным интерфейсом BK ReplaceEm. К тому же, насколько мне известно, к программе нет русификации.

Тропами Сусанина

Вот собственно и все, что хотелось рассказать о BK ReplaceEm. На последок скажу лишь, что программа живет по адресу www.orbit.org/replace . Скачать BK ReplaceEm 2.0 можно , размер дистрибутива — 572 kb. Программа абсолютно бесплатна и работает под Windows.



Рекомендуем почитать

Наверх