Скачать Поиск подстpоки в аpхивах

Vladimir Gorpenko
22.03.1993
Скачать файл ()

Достоинства:

  • - выполняет несколько (до 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азцами.

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

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

С целью экономии времени можно одновременно запустить поиск сразу по нескольким образцам, максимум - по десяти (это параметр задается константой и может быть изменен). При поиске маленькие латинские и русские буквы приводятся к большим, но вывод найденных строк производится в исходном виде. Можно задать дополнительное преобразование символов при поиске. Использование символов '*', '?' или других каким-либо специальным способом не предусмотрено.

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

Имена файлов результата образуются по схеме

'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 ----------------------