English
RQ Search and Replace is easy to use text replacement utility for Windows
Programming and design: Andrew Shelkovenko.
RQ Search and Replace is a shareware software. 
HomePage -
http://mira.xeno.ru
You can download the latest version of RQ Search and Replace from
http://mira.xeno.ru/rqsr.zip
http://mira.home.line1.ru/rqsr.zip 
Documentation -
http://mira.xeno.ru/helpe.zip



Программа
RQ Search and Replace v.1.6х предназначена для поиска и замены нескольких фрагментов текста в нескольких файлах за один запуск. 

С версии 1.53 без регистрации программа обрабатывает файлы размером не более 8 кб или не более 1 файла любого размера за один пуск (см. в меню HELP-Limitation method).
Для полного использования  функций требуется регистрация программы .

В качестве фрагментов могут выбраны

Обрабатываются файлы из выбранного каталога совпадающие с указанной маской.
Возможно  редактирование загруженного файла  и  поиск  в нем.

Также программа выполняет следующие операции:

Поддерживаются  кодировки  Dos-866 с использованием шрифта Terminal и KOI8-R со шрифтом  Arial KOI-8.
Поддерживается поиск и замена в  файлах с кодировкой UTF8.

Внешний вид главного окна программы




Порядок работы с программой

1. Выбрать при помощи кнопки  LOpen.bmp (1654 bytes) нужный каталог , выбрать маску файлов.

---- Выбор каталога

---- Выбор маски файла
---- Включить поддиректории

---- Список обрабатываемых файлов
Обрабатываются все файлы из данного списка.

Маску файла можно выбрать по щелчку правой кнопкой мыши из выпадающего списка.
Для выбора какой-нибудь файл должен быть подсвечен!

 

Выбрать расширение - выбрать все файлы с расширением, как у
 подсвеченного

Только этот файл - выбрать только подсвеченный файл

Обновить список - обновить список файлов в директории.

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




2. В таблице поиска и замены
выбрать тип объекта- Блоки, Строки и т.п.
выбрать тип операции- Заменить, Удалить
внести в таблицу нужные фрагменты поиска и замены

Для выбора операции или объекта необходимо сделать два клика мышкой по ячейке в столбце "Операция" или "Объект". Появится стрелка выпадающего списка, после нажатия на которую откроется список доступных объектов или операций. Необходимо нажать на нужном пункте и он будет помещен в ячейку таблицы.
Для операций с тегами необходимо также выбрать ключи поиска ( и удаления при операции удаления тегов). Ключи поиска можно выбрать из выпадающего списка в ячейке поиска, а удаления - в ячейке замены или внести вручную.
Для операций с "обрамленными" блоками (блоками текста, находящимися между заданными последовательностями символов) необходимо задать начальную и конечную последовательности символов, между которыми будет находиться блок текста. Если выбран объект
"Блок заключенный в .." ("обрамленный" блок), то ячейка поиска будет содержать два поля - для начальной и конечной последовательности. После заполнения этих полей, данные будут сохранены в ячейке таблицы, причем поля будут разделены символами
" <---> ".


Заполнять ячейки поиска и замены можно несколькими способами.

Поля "Кодировка" заполняются автоматически и соответствуют кодировке открытого файла.

Таблицу можно заполнять в произвольном порядке.

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

Для удаления всех данных из таблицы необходимо выбрать в меню  пункт  "Таблица -Очистка таблицы" .
 

Фрагменты поиска и замены могут быть многострочными.
Поскольку в ячейке таблицы видна только одна строка (хотя хранится целиком многострочный текст), для отображения и редактирования всего фрагмента используется редактор таблицы.
Примечание.
В таблице Поиска и замены (см. ниже) всегда используется шрифт Windows (ANSI), поэтому Dos (OEM) и КОИ текст в ячейках  таблицы нечитабелен.

 

Возможны операции с различными объектами:

Внимание!
Порядок выполнения операций не соответствует порядку операций в таблице.
Операции выполняются в следующем порядке

Учет регистра.
Все операции кроме блочных могут выполняться с учетом или без учета регистра.
Блочные операции всегда выполняются с учетом регистра.

Под целым словом понимается последовательность букв, ограниченная НЕ-буквами.
НЕ-буквы - это один из символов

cr - возврат каретки (ascii 13)
lf - перевод строки (ascii 10)
",./\| !@#$%^&*()+=-?><~`;:[]{}'
ht - hottabs (
ascii 9)
(в следующих версиях планируется сделать этот список настраиваемым)

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

Работа с различными кодировками.
Поиск и замена может выполняться в файлах с различными кодировками.
Для обеспечения ввода и просмотра фрагментов поиска и замены в кодировках DOS (OEM 866) и
KOI8-R в редакторе таблицы и в редакторе файла используются шрифты  Terminal и ARIAL-KOI8.
В  случае  кодировки UTF8 фрагменты поиска и замены должны вводиться в таблицу в кодировке Windows (ANSI). В дальнейшем они перекодируются на лету в UTF8 для проведения проверки.

Реализованы следующие операции:

 Для блока текста и слова, "обрамленного" блока:

Заменить
- замена фрагмента текста в выбранных файлов.
В тексте ищутся фрагменты, содержащиеся в ячейке "Поиск" и заменяются на фрагменты из ячейки "Замена"
Удалить - удаление фрагмента текста из выбранных файлов.
В тексте ищутся фрагменты, содержащиеся в ячейке "Поиск" и удаляются.

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

Текст  АААwwwwwwБББ   Блок  wwwwww  не будет удален.
Текст  АААww   bzzzБББ   Блок ww  bzzz  будет удален.

3. Поиск следующей открывающей скобки начинается с первой позиции закрывающей скобки.
Например.
Ищется блок, заключенный между ААА и ААА

 АААwwwww11АААwwwww22АААwwwwwwААА

В этом случае будут найдены и
wwwww11 и wwwww22 и wwwww33
В следующих версиях будет настраиваемо.

Для строки:

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

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

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

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

Например.
 Ищется строка, содержащая фрагмент поиска АВС, и перед ней вставляется фрагмент замены 123.
Результат.
Найдена строка   zzzzzABCzzzzz
Строка после замены будет выглядеть как  123zzzzzABCzzzzz, то есть 123 добавился к существующей строке.
Если  в ячейке замены в конце  фрагмента замены нажать Enter (добавив тем самым перевод строки), то в результат после замены будет следующим

123
zzzzzABCzzzzz

т.е. между 123  и zzzzzABCzzzzz будет добавлен перевод строки.

Внимание! 
Если в какой-нибудь следующей строке  в таблице поиска и замены будет указано удаление строки, содержащей ABC, то будет удален весь новый фрагмент

123
zzzzzABCzzzzz

так как программа считает, что он находится в одной строке

            Для HTML тегов:

Примечание 1.
Под HTML тегом здесь понимается последовательность вида

<[ ]имя_тега[ ]имя_атрибута[ ]=[ ]значение_атрибута[ ][...] >
[ ]
- один или более пробелов
знак = и значение_атрибута могут отсутствовать
[...] - следующие последовательности  (имя_атрибута [ ]=[ ] значение_атрибута [ ])


ищутся теги, удовлетворяющие условию поиска и  выполняются операции

Удалить тег
- удаляется тег и соответствующий закрывающий тег.
Подробнее.

1. Ищется тег, удовлетворяющий условию поиска
2 . Могут быть установлены следующие условия удаления:
1.  В ячейке замены пишется ключ
ALL
Удаляются начальный и конечный теги и весь текст (включая другие теги ) , содержащийся между ними.
2.  В ячейке замены пишется ключ
ALL-
Удаляется весь текст (включая другие теги ) , содержащийся между начальным и конечным тегами. Сами теги не удаляются.
3. Если ключ отсутствует, то удаляются только начальный и конечный теги.
Текст, находящийся между ними, сохраняется
.
Начиная с версии 1.5 ключи можно выбирать из выпадающего списка при клике на ячейку замены.


Заменить атрибут 
- значение атрибута заменяется на заданное.
Подробнее.

1. Ищется тег, удовлетворяющий условию поиска
2. В найденном теге ищется атрибут, имя  которого совпадает с заданным в ячейке замены.
3. Данному атрибуту присваивается значение, заданное в ячейке замены.
Пример 1.
ячейка поиска
<meta http-equiv="Content-Type">
ячейка  замены charset=windows-1251
Будут искаться теги meta, содержащие атрибут http-equiv="Content-Type"  и если в найденном теге присутствует атрибут charset, то ему будет присвоено значение windows-1251
Пример 2.
ячейка поиска
<meta  charset=windows-1251><>AND
ячейка  замены charset=koi8-r
Будут искаться теги meta, содержащие атрибут  charset=windows-1251 и
атрибуту charset  будет присвоено значение
koi8-r

(см. также проект HTMLExample.rqs )

Удалить атрибут - удаляется атрибут с заданным именем/значением

Добавить атрибут
- добавляется атрибут с заданным  именем/значением
Если атрибут с таким именем уже имеется, то его значение изменяется на заданное, без добавления нового атрибута.

В верхний регистр
- значение атрибута переводится в верхний регистр
Подробнее.
1. И
щется тег, удовлетворяющий условию поиска
2. Если  в найденном  теге присутствуют атрибуты, перечисленные в ячейке замены, то значения этих атрибутов переводятся в верхний регистр. Имена атрибутов не изменяются.  Значения других атрибутов не изменяются.
Если в ячейке замены вместо имен атрибутов указан символ * , то изменяется регистр значений всех атрибутов. Другие маски пока не поддерживаются.


Пример 1.
ячейка поиска 
<a target=_blank ><>OR
ячейка  замены href target
В найденном теге значение атрибутов
href , target
переводятся в верхний регистр.

В нижний регистр - значение атрибута переводится в нижний регистр

Примечание.
При обработке найденных тегов двойные (и более) пробелы внутри тегов заменяются на одинарные.
Примечание.
При сравнении значений атрибутов кавычки и апострофы отбрасываются.
Т.е значения атрибутов

onClick="this.setHomePage('http://www.ru'); return false;"
onClick='this.setHomePage("http://www.ru"); return false;'
onClick=this.setHomePage('http://www.ru'); return false;
считаются равными.

Могут быть установлены следующие условия поиска:

1. Эквивалентность (равенство) тегов
Ищется тег такого же типа, содержащий такой же набор атрибутов
Порядок атрибутов, количество пробелов - не имеет значения.
В ячейке поиска указывается  тег и условие поиска EQU, например
<IMG SRC="bluprev.gif" WIDTH = 32 HEIGHT = 32 BORDER = 0 ALT="Previous Page"><>EQU
(здесь последовательность <> - просто разделитель )
Если тег поиска указан без атрибутов, то  тег с таким же именем и без атрибутов будет считаться подходящим.

2.Условие И
Искомый тег должен содержать в себе все признаки поиска - атрибуты со значениями.
В ячейке поиска указывается тег + <>And, например
<IMG SRC="bluprev.gif" WIDTH = 32 HEIGHT = 32 BORDER = 0 ALT="Previous Page"> <>And
Ищется тег с таким же именем, набор атрибутов которого должен содержать все указанные атрибуты с такими же значениями.
Если тег поиска указан без атрибутов, то любой тег с таким же именем будет считаться подходящим.

3. Условие ИЛИ
Искомый тег должен содержать в себе хотя бы один из признаков поиска - атрибут с таким же значением.
В ячейке поиска указывается тег + <>OR
Например
<script defer =1234><>OR
Если тег поиска указан без атрибутов, то любой тег с таким же именем будет считаться подходящим.

4. Условие И-НЕ
 Искомый тег НЕ должен содержать в себе ни одного из признаков поиска В ячейке поиска указывается тег + <>NOT
Если тег поиска указан без атрибутов, то любой тег с таким же именем будет считаться подходящим.

5. Условие ИЛИ-НЕ
Искомый тег НЕ должен содержать в себе хотя бы один из признаков поиска
В ячейке поиска указывается тег + <>NOR
Если тег поиска указан без атрибутов, то любой тег с таким же именем будет считаться подходящим.
Если в найденном теге нет атрибутов, то такой тег  будет считаться подходящим.

6. Если условие поиска (<>XXX) не задано , то по умолчанию присваивается  <>OR

6. MSWord объекты

Можно заменять текстовые блоки, целые слова, специальные символы и маски.
В столбце Объекты выберите из выпадающего списка  пункт "MSWord" и затем кликните по ячейке Объекты или Режим.
Будет показано следующее окно.



Нажмите кнопку  Add to grid для сохранения выбранных настроек в таблицу поиска и замены.
 

Возможен ручной поиск и редактирование загруженного файла.

Для ручного поиска в выбранном файле необходимо ввести фрагмент поиска в поле ввода и нажать кнопку
Поиск.

Search.gif (524 bytes)

Если поле ввода пусто, то будет искаться фрагмент текста, находящийся в редакторе таблицы.
Для сохранения фрагмента поиска необходимо после ввода нажать клавишу
Enter. Использованные ранее фрагменты поиска в дальнейшем можно выбирать из выпадающего списка. Результат поиска будет отображаться в редакторе файла подсветкой найденного фрагмента.

3. Перед проведением поиска и замены можно выбрать опции в пункте меню "Операции"

1. Преобразовать Unicod  символы  - преобразует представление символов кириллицы из вида &#xxxx в "нормальный"
2. Заменять 0-31 символы - заменяет символы с ASCII кодами 0-31 на выбранный символ.


а также опции в меню "Настройки"

1. Сохранять копии - сохраняет копии преобразуемых файлов в соответствующих подкаталогах :
"Original" -  каталог с копией оригинальных файлов.
Перед началом обработки (поиска и замены) оригинальные файлы сохраняются в этом каталоге.
Если такой каталог уже существует, то запрашивается разрешение на сохранение.
"LastCopy" - переход в каталог с последней сохраненной копией.
Если обработка происходит несколько раз, то в этом каталоге хранится последняя копия  текущего каталога.
2. Запрашивать подтверждение
Возможность выполнять операции без дополнительного подтверждения.
3. С учетом регистра - учитывать регистр. Операции с блоками всегда проводятся с учетом регистра.

Начать  Поиск  и Замену

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

 Ход процесса  поиска отображается в редакторе  лога и на панели лога. Процесс поиска можно остановить, нажав кнопку Стоп. .

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

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

Выбор языка интерфейса
Файлы с настройками языка находятся в папке \lang\
В дистрибутиве в этой папке находятся
lang.ini - файл со списком используемых языков и выбранным языком.
english.lng - файл с названиями пунктов меню, сообщениями и т.д. на английском языке
russian.lng - файл с названиями пунктов меню, сообщениями и т.д. на русском языке
spain.lng - файл с названиями пунктов меню, сообщениями и т.д. на испанском языке (частично)

Чтобы добавить новый язык необходимо скопировать файл english.lng  под новым именем (например NewLang.lng )в той же папке lang. Затем перевести названия стоящие после знака равенства на новый язык.

Например:

Было

File=File
Project=Project
Grid=Grid

Для нового  языка стало

File=Файл
Project=Проект
Grid=Таблица


Затем в файл lang.ini следует добавить строчку вида:

NewLang=NewLang, где NewLang - название нового языка (должно совпадать с именем файла NewLang.lng).
также можно исправить строчку
default=NewLang

Тогда после запуска программы будут загружен язык из файла NewLang.lng

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

  Некоторые советы

Описание Меню

Другие функции


Возможные проблемы

1. Подсветка синтаксиса HTML файлов очень медленна. Чтобы прервать процесс подсветки надо кликнуть по полю окна редактора.
2.  После остановки подсветки иногда не появляется вертикальный скролл бар.  Чтобы он появился необходимо изменить размер редактора лога, потянув за красный горизонтальный разделитель.
3. Сообщения в редактор лога (нижнее окно) выводятся шрифтами разных цветов, в том числе и белого. На светлом фоне надписи могут быть не видны.
4. При сбоях в процессе обработки кнопки Пуск, Стоп могут остаться подсвеченными.
5. Файлы размером более 2048 к  не редактируются, только показываются.
6. Могут быть проблемы с размером шрифта DOS при вводе, но  после сохранения файла размер шрифта будет нормальный.
7. Для нормальной работы с DOS кодировкой под Windows XP необходимо установить файл riched32.dll из дистрибутива Windows 98 в рабочий каталог программы и файл шрифта 8514OEM.FON в каталог codePage в рабочем каталоге программы.
8. Иногда самопроизвольно переключает раскладку с русского на английский при вводе текста в DOS кодировке. Можно попробовать в свойствах клавиатуры назначить  русский язык по умолчанию.
9. Чтобы загружать и просматривать текст в бинарных файлах, надо установить галку в меню Операции-Заменять 0-31 символы
10 .С файлами более 5-8Мб работать практически невозможно из-за низкой скорости загрузки.
 


Замечания и предложения   просьба направлять по адресу diakin@narod.ru
Шелковенко Андрею Васильевичу.