Здpавствуй, All!
Кто тут искал пpогpамму для поиска подстpоки в упакованных файлах?
Вот еще один ваpиант.
Достоинства:
- выполняет несколько (до 10 поисков) одновpеменно, т.е. пpи пpосмотpе
пpоизводится сpавнение сpазу с несколькими шаблонами и фоpмиpуется
несколько файлов pезультата;
- пpи записи в выходной файл пишет не только найденную стpоку, но и
несколько стpок до и после (сколько укажете)
- возможно задать пpоизвольную пеpекодиpовку символов пpи сpавнении.
По умолчанию делает капитализацию pусских и латинских букв
- отдается с исходниками
- есть даже описание!
Hедостатки:
- обpазец поиска понимает пpимитивно, как нечто между пpобелами;
- не отpабатывает логических функций над обpазцами.
С уважением,
Vladimir
* Origin: Огоpошенный сyдьбою, ты все же не отчаивайся! (2:5020/519.27)
Привет!
Эта простенькая программка предназначена для контекстного поиска в
упакованных текстовых файлах. Когда я писал ее, я имел в виду поиск
того, что мне нужно в файллистах разных ББС, которые, естественно, храню
в упакованном виде. Однако, по-моему, нигде специфика файллистов не
учитывается.
Программа просматривает все файлы из указанного каталога. Если
расширение файла известно программе, она распаковывает этот архив в
рабочий каталог и сканирует все получившиеся файлы на предмет совпадения
с образцом поиска. После просмотра распакованные файлы удаляются.
С целью экономии времени можно одновременно запустить поиск сразу по
нескольким образцам, максимум - по десяти (это параметр задается
константой и может быть изменен). При поиске маленькие латинские и
русские буквы приводятся к большим, но вывод найденных строк
производится в исходном виде. Можно задать дополнительное преобразование
символов при поиске. Использование символов '*', '?' или других
каким-либо специальным способом не предусмотрено.
Результат поиска выводится на экран и записывается в файл, причем
создается по одному файлу на каждый образец поиска. В начале файла
записывается образец поиска, потом, по каждому совпадению - имя
упакованного файла, имя распакованного файла, номер строки, в которой
обнаружено совпадение, и сама строка. Можно задать вывод некоторого
числа строк до и после строки с совпадением.
Имена файлов результата образуются по схеме 'FINDS.n', где n - номер
образца. Файлы образуются в текущем (на момент вызова программы)
каталоге.
Работа программы управляется файлом конфигурации, в котором задаются
все параметры, кроме образцов поиска. Файл конфигурации имеет
фиксированное имя и должен находиться в текущем каталоге при вызове
программы. Образцы передаются в виде параметров в командной строке.
Первая строка файла конфигурации должна содержать два неотрицательных
целых числа: это количество строк до и после совпавшей, которые
выводятся в файл результата.
Вторая строка может содержать дополнительную таблицу подмен символов
при сравнении, при этом она должна содержать четное число символов. В
каждой паре символов первый символ является заменой для второго.
Хвостовые пробелы отбрасываются.
Третья и четвертая строки содержат соответственно полный путь в
каталог пакованных файлов и рабочий каталог. Бэкслэш в конце пути не
записывается! Рабочий каталог должен существовать и быть пустым.
Остальные строки (в настоящее время - не более 10) задают тип
архиваторов и имеют вид
XXX path param
где XXX - расширение упакованного файла
path - полный путь к распаковщику
param - параметры для архиватора.
Образец файла конфигурации прилагается:
-------------- cut here ----------------------
1 1
c:\bbs\lists
c:\_temp_
arj c:\utilits\arj.exe e
zip c:\utilits\pkunzip.exe
lzh c:\utilits\lha.exe e
-------------- cut here ----------------------
Программу отдаю, как обычно, с исходниками (TP 5.5). Можно
пользоваться, модифицировать и т.д., однако извлекать прибыль будет
некорректно
Замечания и пожелания принимаются нетмэйлом по адресу
2:5050/157.6 AKA 2:5020/122.32 Vladimir Gorpenko - Go UnLtd, Russia -
С уважением,
Го
|