Панель для результатов поиска файлов

Здесь выкладываются готовые к использованию макросы и скрипты.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

Описание:
Скрипт является панельным модулем, предназначенным заменять временную панель при выводе результатов поиска файлов. Основные отличия:
  • форма вывода информации приближёна к формату результатов поиска в диалоге поиска Far;
  • функциональность скрипта, в отличие от стандартной временной панели, ограничена реальными файлами;
  • работа с файлами внутри архивов.


Требуемая версия Far 3.0.5182+.

Замечание: скрипт передаёт список содержимого плагину "Временная панель" через файл. Сборки плагина 107-109 при заполнении Временной панели содержимым из файла для каждого элемента заполняют APanel.UNCPath полным именем (включая абсолютный путь) файла-списка. Если это может сломать работу Ваших скриптов, используйте сборку Временной панели 106 от более ранней версии Far, а лучше перейдите на Far 3.0.5641+, содержащий Временную панель сборки 110+ с устранённой вышеописанной особенностью.



Attachments
TmpPanel.1.3.5.7z
(14.48 KiB) Downloaded 162 times
Last edited by IgorZ on Thu 12 May, 2022 11:40, edited 23 times in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Панель для результатов поиска файлов

Post by citRiks »

Latest post of the previous page:

skipik wrote: Fri 11 Dec, 2020 22:23 Коллеги, а что вот это такое вылезло в справке данного макроса:
у меня такого нету :) но проблема не выглядит критичной если честно
version 3.0.5687.0 x86
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Панель для результатов поиска файлов

Post by citRiks »

skipik, Хоть и не меня спрашивали,
но проверил удаление с панели найденной папки,
(результаты поиска направлены в ТемпПанель Игоря).
Что-то у меня все нормально
skipik
Posts: 318
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 67 times
Been thanked: 29 times

Панель для результатов поиска файлов

Post by skipik »

citRiks, оно не на всех папках воспроизводится, но у меня есть стабильный кейс, поэтому запостил.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Панель для результатов поиска файлов

Post by citRiks »

skipik, если дашь remote desktop/team viewer, то смогу тебя продебаггировать,
но это чисто на твое усмотрение.
может IgorZ сам что нибудь придумает когда найдется
skipik
Posts: 318
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 67 times
Been thanked: 29 times

Панель для результатов поиска файлов

Post by skipik »

citRiks, попробуйте у себя так:
1. Скачать и распаковать: https://www.dropbox.com/s/qa0pkbxp9kf6i ... 9.zip?dl=1
2. Зайти внутрь этой папки
3. Alt+F7 -> *.nfo -> enter
4. Панель
5. Курсор на верхнюю папку, F8, Enter, Enter

Фар у меня - последняя ночная сборка.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Панель для результатов поиска файлов

Post by citRiks »

skipik, замечательно буду пробовать
надеюсь не очень срочно?
а то навалилось на сегодня кое-что на весь день похоже что :(
skipik
Posts: 318
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 67 times
Been thanked: 29 times

Панель для результатов поиска файлов

Post by skipik »

citRiks wrote: Sat 09 Jan, 2021 16:35 надеюсь не очень срочно?
Совсем не срочно. Спасибо, что помогаете! :)
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Панель для результатов поиска файлов

Post by citRiks »

skipik,
твой это ТмпПанель модуль такой же как в архиве v1.2.3, без малейших изменений?
Если же нет, то попробуй для начала с ним
skipik
Posts: 318
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 67 times
Been thanked: 29 times

Панель для результатов поиска файлов

Post by skipik »

citRiks, да, без изменений, ошибка стабильная.
Фар тоже без настроек, просто распакованная ночная сборка.
Last edited by skipik on Sat 09 Jan, 2021 18:15, edited 1 time in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Панель для результатов поиска файлов

Post by citRiks »

skipik,

Круто, кстати начало воспроизводится
надо действительно, чтобы громко упало, удалить именно первую папку.
но на самом деле недоработка есть и не только тут,
проблемы с удалением любой папки, поскольку при не вычищаются файлы принадлежащие этой папке.
Но громко падает на первой, потому что следующий (первый в подсписке) файл с ней становится совсем осиротевший
Если же удалять не первую папку, то осиротевшие файлы ошибочно считаются принадлежащими уже не свой папке,
но громкого падения от этого не случается.

Т.е., проблема не сложная сама по себе,
просто при удалении папки надо еще вычищать файлы ей принадлежащие из списка.

я многу приделать и костыль просто заглушающий падение, но смысла в этом наверное нет,
вам же надо при удалении папки просто перестать видеть ее файлы, которые же естественно тоже удалены.
Но оригинальный авторский модуль этого не предусматривает.
Предусмотреть все же несложно, это банальная очистка из таблицы списка, "table.remove(object.List, j)"
Но это все-таки будет уже некоторый редизайн, и лучше чтобы автор сам его сделал себе,
там могут быть варианты, может автор например предпочтет не удалять записи, а помечать их как удаленные.
Или же предпочтет при удалении папки просто перезагрузит список заново.

Поэтому лучше оставить это автору, где-то раз в месяц он заходит к нам :) а там посмотрим
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

skipik wrote: Fri 08 Jan, 2021 21:30 IgorZ, ловлю такую ошибку при попытке удаления папки с временной панели:

Возможно ли это поправить?
Поправлю. Возможно, не сразу, а чуть позже - со временем сейчас не очень.
skipik
Posts: 318
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 67 times
Been thanked: 29 times

Панель для результатов поиска файлов

Post by skipik »

IgorZ, хорошо, спасибо. Это даже к лучшему, т.к. я нашёл ещё ошибку или, возможно, так задумано - не знаю.

Воспроизведение:

1. Стою в активной панели в папке C:\Soft\fardev\farplugs
2. Делаю поиск папок с именем _Release-x64 (Alt+F7 | с текущей папки)
3. Найдена одна папка или несколько - без разницы
4. Перехожу в панель (ваш макрос)
5. В панели нажимаю Alt+Shift+F5, т.к. в вашем скрипте нет возможности выделить все папки кнопкой "*" и удалить их разом, только по одной
6. Справа открылась временная панель фара, курсор на "..", нажимаю кнопку "*" и клавишу F8, на запрос о перемещении нажимаю "Переместить"
---
Вот тут вопрос - появляется ещё один запрос, где фар хочет переместить в корзину не мои выделенные папки, а C:\Users\<USERNAME> - это баг или что?
Надеюсь, что понятно описал.
Если кто-то ещё проверит и подтвердит|опровергнет, то будет хорошо. Может я чего-то не понимаю и так задумано, хотя и странно.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

Пока было немного времени, поглядел. Ситуация такая:
Скрипт копирует внешний вид панели результатов поиска файлов. То есть, помимо найденных элементов показывает и папки (можно считать, что это заголовки групп, где каждая группа - файлы, найденные в одной папке). Но при этом должны были обрабатываться только найденные элементы. В процессе доработки скрипта алгоритм удаления поделился на два варианта. Если на панели есть файлы в архивах, то идёт обработка "вручную". Если же таких файлов нет, то идёт просто передача обработки Far. Но я не учёл, что во втором случае Far не знает, что папки задуманы как чисто декоративный элемент, и позволяет работать и с ними так же, как и с элементами списка. Чем Вы и пользовались.
Теперь я не знаю, как лучше поступить. Идеологически правильно обеспечить идентичность работы независимо от того, есть ли в найденном файлы в архивах. Проще обеспечить это, просто всегда работая своим алгоритмом, не перекладывая работу на Far. Но тогда Вы уже не сможете удалять папки, в которых лежат найденные файлы. Точнее, для этого надо будет проделать ряд действий вручную: перейти на элемент в этой папке, подняться на уровень вверх, удалить папку под курсором и вернуться в панель скрипта (к примеру, такая последовательность действий: AltShiftF3 Tab CtrlPgUp F8 Enter (дополнительные действия, если есть подкаталоги или файлы с атрибутом RO) Tab). Или можно доработать свой алгоритм, чтобы он мог работать и с папками, ранее содержавшимися в списке просто для наглядности и красоты. Но это дольше (насколько - сейчас не скажу, явно надо будет продумывать кучу неочевидных деталей) и несколько нарушает общую идеологию (что может привести к каскаду изменений во всех остальных частях скрипта).
P. S. Да, чуть не забыл. Вторая, якобы, ошибка - именно задуманное поведение (если я правильно понял описание), в отличие от удаления папок, которое, как я уже описал - багофича.
Last edited by IgorZ on Fri 22 Jan, 2021 08:00, edited 1 time in total.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

Версия 1.3.0 -
  • Работа с каталогами, если установлен флаг "Искать папки". Раньше с этим был бардак. Теперь всё должно стать упорядоченнее. Если флаг "Искать папки" установлен, то папки обрабатываются наряду с файлами. Если он снят, перед именем папки стоит "?", она выводится только для красоты, и никакая её обработка невозможна (по идее). Единственное исключение - выделение такой декоративной папки реально приводит к выделению файлов в ней. Папки внутри архивов обрабатываются аналогично, насколько позволяет плагин.
  • Рефакторинг. По идее, теперь в критических местах должно работать быстрее и лучше.
aflexus
Posts: 74
Joined: Sat 12 Mar, 2011 16:57
Has thanked: 23 times
Been thanked: 1 time

Панель для результатов поиска файлов

Post by aflexus »

IgorZ, Не работает "Copy files to temporary panel". Более того не сохраняется одноименная настройка. Учитывая, что в списке можно лишь просмотреть содержимое файла - теряется весь смысл скрипта.
Можно ли поправить работу функции? И из пожеланий:

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

Спасибо за интересный скрипт. :)
Last edited by aflexus on Mon 24 May, 2021 09:19, edited 1 time in total.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

aflexus wrote:IgorZ, Не работает "Copy files to temporary panel".
Автоматически при открытии, или вручную? Если автоматически, то и неудивительно, раз настройка не включена. Вручную работает.
aflexus wrote:Более того не сохраняется одноименная настройка.
Действительно. Проверю, что там.
aflexus wrote:Учитывая, что в списке можно лишь просмотреть содержимое файла - теряется весь смысл скрипта.
??? Панель поддерживает все возможности аналогичного плагина "Временная панель", доступные для реальных файлов, и добавляет кое-что своё. Если Вы обнаружили заявленный, но неработающий функционал, сообщайте.
aflexus wrote: - Возможно ли добавить функционал, чтобы по клику в результатах поиска на файле происходил переход на выделенный файл, а не его запуск?
- То же касается и перехода в папку при клике на ней?
Нет, поскольку управление сознательно скопировано с плагина "Временная панель".
Post Reply

Return to “Полезные макросы и скрипты”