Для желающих предлагаю очередной созданный "лисапед" -
поиск по контексту в имени файла или в его теле. Источник задачи: для поиска путей решения "свежих" проблем при работе программы:
https://olegon.ru/showthread.php?t=33631, а именно в попытках понимания полноты прохождения заказов через программу интеграции обнаружил, что программа ведёт в логах всю необходимую для выявления проблем информацию, а скачанные из FTP сервера файлы сохраняет в некотором служебном каталоге.
Осталось выявить местонахождение файла, статус обработки электронного документа и т.д. Конечно это можно выявить средствами операционной системы или стандартными утилитами, однако имелось ряд оговорок и результатов предварительного тестирования:
1. Данной возможностью должен уметь пользоваться оператор, а не только It специалист;
2. Штатные средства работают очень медленно: первый поиск в проге на 30% быстрее, чем поиск в Windows, зато последующие быстрее на порядок, т.к. специфика инструмента - он всё обработанное впихивает в Ram и использует повторно при необходимости;
3. Область поиска, как правило разбросана по несвязанным каталогам и для поиска в них нужно писать сценарии.
Довольно быстро создал режим в программе интеграции, произвёл замеры быстродействия и понял, что:
1. Он, как режим программы интеграции не годится, т.к. блокирует ресурсы реальной БД программы на 10-20 минут, т.е. отключая её от On-line обмена с провайдером:
2. Осознал, что такой механизм нужен и для других моих систем, например для "УС Лэнд:ЕГАИС":
https://olegon.ru/showthread.php?t=23281 отлично ищет акты на ТТН.
Вот и создал отдельную, думаю очень многим полезную программу, а из программы интеграции с EDI она вызывается, как независимый процесс... даже исполняемый отдельным процессором ПК при необходимости... и не привносит замедление в вызывающей программе.
Имена файлов операционной системы предполагаются в Windows (1251) кодировке, а содержимое, воспринимаемое, как текстовое файлов допускается для корректного поиска в кодировках:
- 866 - Dos кодировка;
- 1251 - Windows$
- UTF-8.
Сохраните содержимое архива в требуемом корневом каталоге. Для Ваших конкретных нужд нужно задать файл конфигурации SeekInfo.cfg поиска - пример приложен, где в каждой строке прописывается: каталог поиска, расширение файлов где ищем, кодировка файлов данного расширения, например:
Код:
Ok,XML,UTF8
Log,TXT,1251
Rep,Rep,866
Rep,TXT,1251
Report\Log,Log,1251
d:\Программа\catalog,mem,utf8
После запуска циклически, до нажатия Esc программа запрашивает Вас контекст поиска. Возможен обмен с любым Windows приложением через копипаст, где управление клавишами:
Ctrl+C - копировать;
Ctrl+X - вырезать;
Ctrl+V - вставить.
Затем обходит все заданные в конфигурации каталоги с демонстрацией срока ожидания:
По завершению предлагает изучить - сохранить результаты поиска, например для дальнейших действий. Можно использовать:
1. Вывод на печать;
2. Сохранение в файле 866 кодировки текущего каталога;
3. Просмотр отчета на экране;
6. Редактирование отчета;
8. Сохранение в файле 1251 кодировки текущего каталога.
Пример отчета:
Код:
Поиск вхождения контекста: ORDER_20220425090801_F92C0D04-0C7D-42EC-A0CE-38698C675B8B
Входит в имя файла: 25.04.2022 Ok\order_20220425090801_f92c0d04-0c7d-42ec-a0ce-38698c675b8b.xml
Нашел в теле файла: 25.04.2022 Log\Ord_25042022_100953.txt