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

Здесь выкладываются готовые к использованию макросы и скрипты.
Post Reply
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.
LAT
Posts: 343
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 22 times
Been thanked: 39 times

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

Post by LAT »

Latest post of the previous page:

citRiks wrote: Thu 13 Feb, 2020 23:02 Спросил я совета у старца XeRoX'a об этой незадаче, и вот он так говорит:
Перво-наперво, нужно прочитать "Отче Наш" со смиренным сердцем
И придет разумение, что в UTF8 дьявол прячется окаянный.
Второй дьявол прячется в РегЕкспе, к православной кириллице негодном.
Третий же дьявол в цифирях года сидит,
оные по еретической задумке 4-значные должны быть.

И увещеваю народ православный мануалы от лукаваго и не читать!
Ибо пустое это, лишь молитва спасает
Паче чаяния, старец ваш в грехе погряз. Ибо UTF8 есмь универсальная кодировка, Богу угодная, а РегЕкспы Божественным Промыслом предвселися, и не висети от святого Кирилла письмен. Иже цифери года и лукавы, то весьма не понеже враг рода человеческого лютует, а поелику грех первородный довлеет над человеками. И негоже взор свой вменяти на ереси и нерадити Писанием.
Last edited by LAT on Fri 14 Feb, 2020 00:41, edited 2 times in total.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

skipik wrote: Thu 13 Feb, 2020 12:25 IgorZ, теперь так:



Это на полностью свежем фаре, с одним макросом.
Ну что я могу сказать? Дата не преобразуется корректно. Дальнейшие эксперименты показали, что с третьего раза "старец Григорий" таки угадал: функция win.SystemTimeToFileTime не преобразовывает дату, если год указан двумя цифрами. Пока, для скорости, предлагаю такой костыль: строку 394 оригинального файла

Code: Select all

    FT.wDay,FT.wMonth,FT.wYear,s,a,n = v.Text:match("^%s*(%d+)%D+(%d+)%D+(%d+)%s*│%s*(%S*)%s*│%s*(%S*)%s*│%s*(%S*)%s*$") -- достанем данные
меняем на

Code: Select all

    FT.wDay,FT.wMonth,FT.wYear,s,a,n = v.Text:match("^%s*(%d+)%D+(%d+)%D+(%d+)%s*│%s*(%S*)%s*│%s*(%S*)%s*│(.*)$") -- достанем данные
    if tonumber(FT.wYear)<100 then FT.wYear = FT.wYear+2000 end -- костыль для года без века
(заодно правится ещё один косяк, с пробелами в имени файла).
Позже постараюсь сделать покрасивее, без магических констант.

P. S. Кстати, а почему у Вас в списке найденных файлов вообще дата настроена на год из двух цифр? В чём смысл? Неужто знакоместо под два символа настолько критично?
АНОНИМ
Posts: 95
Joined: Thu 10 Nov, 2005 08:15
Location: Novosibirsk, Russia

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

Post by АНОНИМ »

Вот с последней корректировкой всё заработало.

P.S. Насчёт года из двух цифр. Скорее всего это изначальные умолчания. Лично мне никогда не мешали, и вряд ли когда-то пытался найти способ поменять это отображение. Сейчас быстро по хелпу вроде нашёл, что для четырёх цифр года надо менять ширину колонок, но эту ширину я точно никогда не менял.

P.P.S. Хотя надо будет поэкспериментировать и выяснить, будет ли теперь работать неправленная версия 1.2, если год сдедать четырёхзначным. Вот только разберусь, где именно отображение даты меняется именно для этой панели.
Last edited by АНОНИМ on Fri 14 Feb, 2020 06:38, edited 2 times in total.
skipik
Posts: 318
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 67 times
Been thanked: 29 times

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

Post by skipik »

IgorZ, спасибо, теперь починилось!
IgorZ wrote: Fri 14 Feb, 2020 05:53 P. S. Кстати, а почему у Вас в списке найденных файлов вообще дата настроена на год из двух цифр? В чём смысл? Неужто знакоместо под два символа настолько критично?
Это по умолчанию так, я ничего там не менял.
АНОНИМ
Posts: 95
Joined: Thu 10 Nov, 2005 08:15
Location: Novosibirsk, Russia

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

Post by АНОНИМ »

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

Настройки режима панелей файлов на это не влияют никак (во всех режимах делал отображение года четырёхзначным).

Кое-какой эффект есть, если поменять в дополнительных параметрах поиска ширину колонок. У меня там стояло 0,0,0. Хотя в справке почему-то указано, что по умолчанию значения полей равны 14,13,0. Изменение этих параметров ошибку не убрало, но проявляется она по-разному.
Если параметры равны 0,0,0, то после возникновения ошибки и после двукратного нажатия Enter появляется пустая панель результатов поиска.

Если поставить параметры 14,13,0, то после возникновения ошибки и двукратного нажатия Enter появляется панель с результатами поиска.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

АНОНИМ wrote: Fri 14 Feb, 2020 08:18 Так и не удалось найти, где именно надо поменять отображение даты, чтобы заработала версия 1.2 без костыля.
Настройки режима панелей файлов на это не влияют никак (во всех режимах делал отображение года четырёхзначным).
Кое-какой эффект есть, если поменять в дополнительных параметрах поиска ширину колонок.
Именно там.
АНОНИМ wrote: Fri 14 Feb, 2020 08:18 У меня там стояло 0,0,0. Хотя в справке почему-то указано, что по умолчанию значения полей равны 14,13,0.
У меня, как раз, "14,13,0", хоть я никогда не менял. Возможно, это возникло в какой-то из относительно недавних версий (у меня профиль тянется ещё с 1-й версии Far).
АНОНИМ wrote: Fri 14 Feb, 2020 08:18 Изменение этих параметров ошибку не убрало, но проявляется она по-разному.
Если параметры равны 0,0,0, то после возникновения ошибки и после двукратного нажатия Enter появляется пустая панель результатов поиска.
Если поставить параметры 14,13,0, то после возникновения ошибки и двукратного нажатия Enter появляется панель с результатами поиска.
А сколько цифр года выводится в каждой ситуации?
У меня с "14,13,0" выводятся 4 цифры, и всё работает без ошибок даже без правки.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

IgorZ wrote: Fri 14 Feb, 2020 05:53 if tonumber(FT.wYear)<100 then FT.wYear = FT.wYear+2000 end -- костыль для года без века
Лучше так: if a < 100 then if a >= 70 then a=a+1900 else a=a+2000 end end
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

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

Post by DrKnS »

User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

процитирую (отсюда: viewtopic.php?p=158973#p158973) сам себя:
Shmuel,
Спасибо, круто получилось!
пока мой академический интерес к ЛуаТемпПанели себя вполне оправдывает :)
И есть еще вылет Вашей панели, судя по всему, на датах которые меньше 2000-го:

На датах файлов больших 2000-го вылета нет,
но я подозреваю что где-то тихо происходит неправильное преобразование даты
Помню что вы чинить не собираетесь, отмечаю лишь для справки :)
проблема оказалась в том что влазит альтернативный панельный луа-скрипт (viewtopic.php?f=60&t=11605),
в том числе и когда его HE выбираем для отображения результатов поиска
(картинка вылета в оригинальном сообщении присутствует)
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

IgorZ, не умаляя достоинств Вашего плагина, для полноты картины,
процитирую еще одну цитату (viewtopic.php?f=60&t=11605) из обсуждения смежной темы:
citRiks wrote: Sat 15 Feb, 2020 10:04 Отмечу еще вот что, LuaOnlyTmpPanel@IgorZ (назовем его так) ведет себя плохо в такой ситуации:

1.) Делаем на нем QuickView
2.) Двигаем размер панелей по Ctrl-<Left/Right>, или вручную, или макросом вроде этого: viewtopic.php?f=15&t=8710
3.) Получаем очень медленную реакцию, не секунд 5-10, особенно заметную при использовании макроса,
но вполне заметную и ручным способом тоже

А вот в этом LuaDLLTmpPanel@ShmuZ (назовем его так) таких тормозов нет,
все происходит мгновенно, как и в нативной панели
Last edited by citRiks on Sat 15 Feb, 2020 10:10, 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 »

IgorZ,
Я вот еще что подумал, и не могли ли вы пояснить
Написание панельных модулей вы явно осилили,
а тут есть прекрасный панельный Луа-Длл-Тмп-Панель-Плагин @Шмуэль: viewtopic.php?f=8&t=12022
(о качестве работы Шмуэля думаю что пояснять не надо)
Кажется что оный плагин полностью рабочий, и функционирование и предназначение его совпадает с вашим модулем,
но чтобы его осовременить надо бы перевести его в "Без-DLL-ьный" формат (избавится от зависимости в DLL-заглушке)

Как вы представляете обьем работы и времени для вас,
располагете ли вы возможностями это сделать?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

citRiks wrote: Sat 15 Feb, 2020 10:43 но чтобы его осовременить надо бы перевести его в "Без-DLL-ьный" формат (избавится от зависимости в DLL-заглушке)
Насчёт "осовременить", это как-то абстрактно звучит. Ну вот, допустим, это сделано, избавились от плагина, добавили панельный модуль. А какие конкретные выгоды от этого? 100 килобайт экономии на диске?
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

Shmuel,
Да, хороший вопрос, обьясню
1.) На многих местах работы стого-настрого с заносами внешних\новых DLL дела обстоят, вплоть до увольнений
(в "cyber-team" обычно такие тупни сидят, что мама не горюй)
2.) Навыки допиливания\изменения в Луа приобретаются легче чем С++,
3.) не требуют навыков настройки среды компилирования С++ - отдельный навык
4.) Лןицензия Visual Studio на рабочем месте стоит денег, а делать это всякими MingW - еще один отдельный навык
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

citRiks,
По поводу п.1 ещё туда-сюда, хотя это глупо - из Lua/LuaJIT без всяких дополнительных DLL можно легко наделать делов в системе вплоть до её разрушения. По поводу остальных пунктов - мимо кассы, речь идёт о LuaFAR-плагинах, где не надо никаких навыков C++, никаких компилирований и лицензий. Вот вы переименовали LuaMacro.dll, и на этом дело закончилось, все изменения можно делать на Lua.

P.S. Поскольку я эту кухню знаю, могу подытожить: никаких преимуществ у панельного модуля перед LuaFAR-плагином нет (а наоборот - есть, но сейчас нет времени об этом). Единственная цель добавления механизма панельных модулей в LuaMacro, это для тех, кто боится DLL как огня, ну и ещё для каких-то простых случаев, чтобы не плодить плагины десятками.
Last edited by Shmuel on Sat 15 Feb, 2020 11:39, 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 »

Shmuel, Согласен что это глупо, но cyber-security есть cyber-security тупни есть тупни.
В то же время, GitHub может быть открыт, откуда и куда копи-пастим Луа-код, изменения Луа-кода.
За остальное - буду рад если так, но у меня сложилось впечатление, что несмотря что будучи автором этой модели DummyDLL+Lua вы и прямо и косвенно избегаете этой темы, представляя ее устаревшей.
Ну например, вас нет на PlugRinge, а в GitHube есть разрозненные элементы паззла (почти) без инструкций.
Да, вы великодушно делитесь если очень поприсить, но такая ситуация обычно происходит когда автор не заинтересован, не считает актуальным развитие такой модели.
Ну по крайней мере у меня таке впечатление есть, возможно что ошибочное, и буду очень рад ошибиться (?)
Если же я ошибаюсь, то нам тогда где-то нужен некий универсальный актуальный "официальный" набор DLL-заглушек для подобных плагинов, на которые "скриптизер" будет надевать свой Луа-код.
Или ЛуаМАкро.Длл полностью покрывает все настоящие и будущие потребности?
Last edited by citRiks on Sat 15 Feb, 2020 11:46, edited 2 times in total.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

citRiks wrote: Sat 15 Feb, 2020 11:36 Если же я ошибаюсь, то нам тогда где-то нужен некий универсальный актуальный "официальный" набор DLL-заглушек для подобных плагинов, на которые "скриптизер" будет надевать свой Луа-код
Ничего уже не надо.
Для старых плагинов эти заглушки уже есть.
А новые скрипты проще сразу писать для среды luamacro.
https://t.me/FarManager — Telegram чат
Post Reply

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