Поиск файлов - дополнительная опция (включение/исключение из поиска папок по маске)

Вам не хватает чего-то в Far? Вы считаете, что вашу идею стоит услышать? Пишите сюда.
Post Reply
Izver
Posts: 11
Joined: Wed 25 Jan, 2017 07:48

Поиск файлов - дополнительная опция (включение/исключение из поиска папок по маске)

Post by Izver » Wed 25 Jan, 2017 08:06

Добрый всем день!
Пользуюсь фаром более 15 лет, на новой работе очень не хватает такой фишки:

Периодически ищу опредёленный файл по маске в папке с огромным количеством подпапок и файлов в них (исходники очень большой и сложной информационной системы, все файлы разложены по систематике, например в папке серверных скриптов - таблицы отдельно, триггера отдельно, сиквенсы отдельно, функции, пакеты, индексы и т.д). Названия папок жестко заданы и создаются автоматически создаются системой контроля версий. Папки первого уровня указывают подсистему (их более 50). В итоге в структуре папок сейчас более 3 тыс. папок и 100 тыс файлов.

При поиске (по Alt-F7) мне очень нужно включить дополнительный фильтр на включение/исключение папки из поиска.
Например мне нужно найти определённые файлы в пакетах Oracle. С новой опцией я смогу задать маску папок, которые включаются в поиск (например в новом поле задаю *PKG*, и FAR будет искать только в подпапках, попадающих под этот фильтр).

Преимущества, которое даёт нововведение - очень убыстряется поиск в специфичных как у меня случаях.

PS. Я смотрел плагины, в частности S&R, который уже не поддерживается, там такого функционала тоже нет

Shmuel
Posts: 5161
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 145 times

Поиск файлов - дополнительная опция (включение/исключение из поиска папок по маске)

Post by Shmuel » Wed 25 Jan, 2017 08:32

В диалоге поиска файлов есть опция [ ] Use filter и кнопка Filter. Можно добавить один или несколько фильтров перед началом поиска. Каждый отдельный фильтр может настраиваться в меню фильтров как на включение (нажать +), так и на исключение (нажать -). Если вы с фильтрами Far раньше дела не имели, то имеет смысл ознакомиться со справкой по ним.

Izver
Posts: 11
Joined: Wed 25 Jan, 2017 07:48

Поиск файлов - дополнительная опция (включение/исключение из поиска папок по маске)

Post by Izver » Wed 25 Jan, 2017 08:47

Shmuel wrote: Можно добавить один или несколько фильтров перед началом поиска.
Сейчас попробовал, как Вы советовали - не сработало
Вот настройки:
Выкладываю в виде текстовых скринов

1. Диалог по Alt-F7

Code: Select all

  ╔═════════════════════════════ Поиск файла ══════════════════════════════╗
  ║ Одна или несколько масок файлов:                                       ║
  ║ Swift*                                                                ↓║
  ╟────────────────────────────────────────────────────────────┏orum.farmanager.com80────────╢
  ║ Содержащих текст:                                                      ║
  ║                                                                       ↓║
  ║ Используя кодовую страницу:                                            ║
  ║ Автоматическое определение                                            ↓║
  ╟───────────────────────────────────┬────────────────────────────────────╢
  ║ [ ] Учитывать регистр             │ [x] Искать в архивах               ║
  ║ [ ] Только целые слова            │ [x] Искать папки                   ║
  ║ [ ] Искать 16-ричный код          │ [x] Искать в символических ссылках ║
  ║ [ ] Не содержащих                 │ [ ] Искать в альтернативных потоках║
  ╟───────────────────────────────────┴────────────────────────────────────╢
  ║ Выберите область поиска:                                               ║
  ║ С текущей папки                 ↓   [x] Использовать фильтр            ║
  ╟────────────────────────────────────────────────────────────────────────╢
  ║      { Искать } [ Диск ] [ Фильтр ] [ Дополнительно ] [ Отмена ]       ║
  ╚════════════════════════════════════════════════════════════════════════╝
2. Диалог фильтра:

Code: Select all


  ╔════════════════════════════ Меню фильтров ═════════════════════════════╗
  ║+ Папки *BPL*           │ ..............D+.............. ... │ *BPL*    ║
  ╟────────────────────────┼────────────────────────────────────┼──────────╢
  ║  0. Папки              │ ..............D+.............. ... │          ║
  ║  1. Файлы панели       │ ..............D-.............. ... │ *.       ║
  ║  2. Файлы панели       │ ..............D-.............. ... │ *.bat    ║
  ║  3. Файлы панели       │ ..............D-.............. ... │ *.debug  ║
  ║  4. Файлы панели       │ ..............D-.............. ... │ *.inc    ║
  ║  5. Файлы панели       │ ..............D-.............. ... │ *.info   ║
  ║  6. Файлы панели       │ ..............D-.............. ... │ *.ini    ║
  ║  7. Файлы панели       │ ..............D-.............. ... │ *.par    ║
  ║  8. Файлы панели       │ ..............D-.............. ... │ *.release║
  ║  9. Файлы панели       │ ..............D-.............. ... │ *.tmpl   ║
  ║  A. Файлы панели       │ ..............D-.............. ... │ *.xls    ║
  ╚═══════ +,-,Пробел,I,X,BS,Shift+BS,Ins,Del,F4,F5,Ctrl+Up,Ctrl+Dn ═══════╝
3. Настройки фильтра:

Code: Select all


 ╔════════════════════════════════ Фильтр ════════════════════════════════╗
 ║ Имя фильтра: Папки *BPL*                                              ↓║
 ╟────────────────────────────────────────────────────────────────────────╢
 ║ [x] Маска: *BPL*                                                      ↓║
 ╟──────────────────┬─────────────────────────────────────────────────────╢
 ║ [ ] Размер:      │ [ ] Дата/Время:               [ Текущая ] [ Сброс ] ║
 ║   >=             │   записи          ↓     <=   .  .        :  :  ,    ║
 ║   <=             │   [ ] Относительная     >=   .  .        :  :  ,    ║
 ╟──────────────────┴─────────────────────────────────────────────────────╢
 ║ [x] Атрибуты                                                           ║
 ║   [?] Только для чтения              [?] Разрежённый                   ║
 ║   [?] Архивный                       [?] Временный                     ║
 ║   [?] Скрытый                        [?] Автономный                    ║
 ║   [?] Системный                      [?] Точка повторного анализа      ║
 ║   [?] Сжатый                         [?] Виртуальный                   ║
 ║   [?] Зашифрованный                  [?] Поток целостности             ║
 ║   [?] Неиндексируемый                [?] Нет данных очистки            ║
 ║   [x] Каталог                                                          ║
 ╟────────────────────────────────────────────────────────────────────────╢
 ║ [ ] Болee одной жёсткой ссылки                                         ║
 ╟────────────────────────────────────────────────────────────────────────╢
 ║                     { OK } [ Очистить ] [ Отмена ]                     ║
 ╚════════════════════════════════════════════════════════════════════════╝

Izver
Posts: 11
Joined: Wed 25 Jan, 2017 07:48

Поиск файлов - дополнительная опция (включение/исключение из поиска папок по маске)

Post by Izver » Wed 25 Jan, 2017 09:54

Дополнение
Использую FAR ver. 3.0 build 4774 x86
Сейчас попробовал с теми же параметрами поискать в корне папки, где развёрнуто около 10 локальных копий систем (нужно столько для работы :) )
Видно что при поиске смотрит на папки содержащую нужную маску, но поиск зависает на одной подпапке *BPL*, такое ощущение, что внутри этой директории поиск происходит без использования маски фильтра

Т.е. возможно есть баг, когда поиск по фильтру маски находит нужную папку, а поиск внутри неё происходит уже полным перебором, а логичпorum.farmanager.comо бы повторно применять фильтр маски.

Shmuel
Posts: 5161
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 145 times

Поиск файлов - дополнительная опция (включение/исключение из поиска папок по маске)

Post by Shmuel » Wed 25 Jan, 2017 10:55

Izver wrote: Т.е. возможно есть баг, когда поиск по фильтру маски находит нужную папку, а поиск внутри неё происходит уже полным перебором
Попробовал смоделировать ваш случай, добавил 2 фильтра: один ищет все папки и файлы (помечен +), другой исключает только папки по маске (помечен -). Результат поиска был правильный (ничего внутри исключённых папок найдено не было).
Перебирал ли поиск эти файлы - не исследовал, времени сейчас нет. Проверил - не перебирал (то-есть лишних действий поиск не делал).

Izver
Posts: 11
Joined: Wed 25 Jan, 2017 07:48

Поиск файлов - дополнительная опция (включение/исключение из поиска папок по маске)

Post by Izver » Wed 25 Jan, 2017 12:37

Shmuel wrote: Попробовал смоделировать ваш случай, добавил 2 фильтра: один ищет все папки и файлы (помечен +), другой исключает только папки по маске (помечен -).
Я аналогично сделал, только оба фильтра отметил как +, т.е. включил имя папки по маске
Запустил поиск по корневой папке, у меня там 10 локальных копий(выше я писал)
Поиск продолжался более 3-х часов, и не закончился - я его вырубил. Где-то косяк с алгоритмикой (на ум приходит алгоритм маляра Шлемиэля :ha: - выглядит аналогично, натравливаешь на одну папк%forum.farmanager.comт достаточно быстро, натравливаешь на 10 папок - время поиска увеличивается экспоненциально)

Shmuel
Posts: 5161
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 145 times

Поиск файлов - дополнительная опция (включение/исключение из поиска папок по маске)

Post by Shmuel » Wed 25 Jan, 2017 13:33

Izver wrote: Где-то косяк с алгоритмикой
Если вы в этом уверены, добро пожаловать на багтрекер. Там репортятся косяки, действительные и кажущиеся.

Post Reply

Return to “Предложения и идеи”