IgorZ wrote: ↑Wed 17 Apr, 2019 12:26 Описание:
Скрипт является панельным модулем, предназначенным заменять временную панель при выводе результатов поиска файлов. Основные отличия
- форма вывода информации приближёна к формату результатов поиска в диалоге поиска Far.
- функциональность скрипта, в отличие от стандартной временной панели, ограничена реальными файлами.
- вызов путём нажатия на кнопку
[ Панель ]
диалога поиска файлов (обычно с последующим выбором пунктаLuaMacro
из меню). В этом режиме файлы из диалога результатов поиска копируются в данную панель и, опционально, во временную панель Far, которая в этом случае опционально может быть открыта на пассивной панели Far.- вызов путём выбора пункта
Панель результатов поиска файлов
из меню плагинов/дисков Far
или с помощью клавиатурной комбинацииAltShiftF6
(только при активной временной панели). Данный способ работает, если на активной панели Far открыта временная панель (при этом в панель копируются файлы из временной панели, и данная панель открывается в активной панели Far вместо временной), или если данная панель уже открывалась и была закрыта(открывается на активной панели с предыдущим содержимым).
Требуемая версия Far 3.0.5182+.
Замечание: скрипт передаёт список содержимого плагину "Временная панель" через файл. Сборки плагина 107-109 при заполнении Временной панели содержимым из файла для каждого элемента заполняютAPanel.UNCPath
полным именем (включая абсолютный путь) файла-списка. Если это может сломать работу Ваших скриптов, используйте сборку Временной панели 106 от более ранней версии Far, а лучше перейдите на Far 3.0.5641+, содержащий Временную панель сборки 110+ с устранённой вышеописанной особенностью.
- Предрелизные версии можно найти в данной теме ниже.
- Версия 1.0.0 - Первый релиз.
- Версия 1.0.1 - Исправлена ошибка в языковых файлах. Добавлена независимость от расширения файла.
- Версия 1.1.0 - Добавлена стандартная обработка F5/ShiftF5/F6/ShiftF6/F8/ShiftF8/ShiftDel/AltDel/Enter/CtrlPgDn. Добавлена обработка AltShiftF3 (перейти на файл под курсором в пассивной панели), AltF5 (скопировать на пассивную панель с учётом путей), AltF6 (перенести на пассивную панель с учётом путей), AltShiftF5 (скопировать содержимое панели на временную и открыть её на пассивной панели), AltShiftF6 (скопировать содержимое панели на временную и открыть её активной панели вместо данной), F7 (убрать файл с панели, не трогать на диске). При выделении каталога вместо него выделяются все файлы в нём и его подкаталогах. После закрытия список файлов сохраняется и восстанавливается при повторном открытии через меню дисков/плагинов. Добавлен неполноэкранный режим панели. Пункт добавлен в меню дисков. Рефакторинг.
- Версия 1.1.1 - Исправлены две обнаруженные ошибки.
- Версия 1.2.0 - Показываются результаты поиска в архиве.
- Версия 1.2.1 - Настройка использования 7zip. Обработка F3/F4/F5/F6/F7/F8/Del в архивах. Исправление обнаруженных ошибок. Рефакторинг.
- Версия 1.2.2 - Опциональная принудительная настройка колонок для списка результатов поиска. Рефакторинг.
- Версия 1.2.3 - Исправлено чтение файлов с временной панели. Рефакторинг.
В общем, чтоб не быть голословным (а если честно, просто самому захотелось попробовать сделать), я сляпал простейший панельный модулёк.Во вложении он же в архиве.
local F = far.Flags local Title ="TmpPanel" local DirSortMode PanelModule{ Info={ Guid=win.Uuid("BA461384-095B-4D0F-AA87-07365A0E2AF6"); Title=Title; Description="Временная панель, как окно поиска"; Version="0.1"; Author="IgorZ"; }; -- Open=function(OpenFrom) if OpenFrom==F.OPEN_FINDLIST then DirSortMode = band(panel.GetPanelInfo(nil,1).Flags,F.PFLAGS_DIRECTORIESFIRST)~=0 return {} end end; -- SetFindList=function(object,_,Items) object.List = Items return true end; -- GetFindData=function (object) local Items = {win.GetFileInfo(object.List[1].FileName:match("^(.*)\\[^\\]*$"))} Items[1].FileName = far.ConvertPath(Items[1].FileName,F.CPM_FULL) for _,PI in ipairs(object.List) do Items[#Items+1] = { LastWriteTime = PI.LastWriteTime, LastAccessTime = PI.LastAccessTime, CreationTime = PI.CreationTime, ChangeTime = PI.ChangeTime, FileSize = PI.FileSize, AllocationSize = PI.AllocationSize, FileName = PI.FileAttributes:match("d") and PI.FileName or " "..PI.FileName:match("[^\\]*$"), AlternateFileName = PI.AlternateFileName, FileAttributes = PI.FileAttributes, Flags = PI.Flags, NumberOfLinks = PI.NumberOfLinks, CRC32 = PI.CRC32, Description = PI.Description, Owner = PI.Owner, CustomColumnData = PI.CustomColumnData, UserData = PI.UserData, } end return Items end; -- GetOpenPanelInfo=function() return { Flags = F.OPIF_DISABLEFILTER+F.OPIF_DISABLESORTGROUPS+F.OPIF_ADDDOTS+F.OPIF_REALNAMES; PanelTitle = Title; PanelModesArray = {{ ColumnTypes = "D,T,S,A,N"; ColumnWidths = "10,8,0,0,0"; StatusColumnTypes = "N"; StatusColumnWidths = "0"; Flags = F.PMFLAGS_FULLSCREEN; }}; PanelModesNumber = 1; StartPanelMode = "1"; StartSortMode = F.SM_UNSORTED; StartSortOrder = 0; ShortcutData = ""; } end; -- ProcessPanelEvent=function(_,_,Event) if Event==F.FE_GOTFOCUS then panel.SetDirectoriesFirst(nil,1) end return false end; -- ProcessPanelInput=function(object,_,rec) if rec.EventType== F.KEY_EVENT and APanel.CurPos>2 and not object.List[APanel.CurPos-2].FileAttributes:match("d") then if rec.VirtualKeyCode==0x73 and band(rec.ControlKeyState,0x1f)==0 then local fn = object.List[APanel.CurPos-2].FileName editor.Editor(fn) object.List[APanel.CurPos-2] = win.GetFileInfo(fn) panel.UpdatePanel(nil,1,true) return true end end return false end; -- ClosePanel=function() panel.SetDirectoriesFirst(nil,1,DirSortMode) end; }GeSHi © Codebox Plus Extension
Как использовать: кладём в папку scripts, перезапускаем Far (или просто перезагружаем макросы), набираем в нужном каталогеAltF7
, после завершения сканирования жмём[Панель]
, выбираем плагин LuaMacro и получаем результат. В данной версии предусмотрено только редактирование файлов поF4
, это, по сути, демка.
TmpPanel.lua.7z
Панель для результатов поиска файлов
Панель для результатов поиска файлов
IgorZ wrote: ↑Wed 17 Apr, 2019 12:26 Описание:
Скрипт является панельным модулем, предназначенным заменять временную панель при выводе результатов поиска файлов. Основные отличия
- форма вывода информации приближёна к формату результатов поиска в диалоге поиска Far.
- функциональность скрипта, в отличие от стандартной временной панели, ограничена реальными файлами.
Требуемая версия Far 3.0.5182+.
Замечание: скрипт передаёт список содержимого плагину "Временная панель" через файл. Сборки плагина 107-109 при заполнении Временной панели содержимым из файла для каждого элемента заполняютAPanel.UNCPath
полным именем (включая абсолютный путь) файла-списка. Если это может сломать работу Ваших скриптов, используйте сборку Временной панели 106 от более ранней версии Far, а лучше перейдите на Far 3.0.5641+, содержащий Временную панель сборки 110+ с устранённой вышеописанной особенностью.
- Attachments
-
- TmpPanel.1.2.3.7z
- (12.73 KiB) Downloaded 100 times
Last edited by IgorZ on Tue 18 Aug, 2020 07:14, edited 16 times in total.
- John Doe
- Бюрократ
- Posts: 13001
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 40 times
- Been thanked: 310 times
Панель для результатов поиска файлов
Latest post of the previous page:
Ничего уже не надо.
Для старых плагинов эти заглушки уже есть.
А новые скрипты проще сразу писать для среды luamacro.
https://t.me/FarManager — Telegram чат
-
- Posts: 6194
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 31 times
- Been thanked: 337 times
Панель для результатов поиска файлов
citRiks, (1) я добавил ещё разъяснения к своему предыдущему сообщению. (2) на плагринге я есть, плохо ищете.
Насчёт наборов DLL и т.п. - это детский сад. Засучите рукава и восполните пробелы в своих знаниях. Есть документация, которую не прорабатывают или вообще не читают. Без упорного труда ничего не будет.
Всё. На сегодня я потратил здесь гораздо больше времени, чем имел право.
Насчёт наборов DLL и т.п. - это детский сад. Засучите рукава и восполните пробелы в своих знаниях. Есть документация, которую не прорабатывают или вообще не читают. Без упорного труда ничего не будет.
Всё. На сегодня я потратил здесь гораздо больше времени, чем имел право.
Панель для результатов поиска файлов
Вот бы их офицальный списочек этих старых плагинов-заглушeк от вас?
возможно есть более полнофункциональные и\или новее, или есть какие-то глючные.
Я в большинстве случаев предпочитаю допиливание писанию заново,
пока я не такой профи чтобы писать совсем заново, и скорее всего не буду таким.
вот например хочу сдеалать ПанельныйМодуль для полноценной работы с MS SQL,
мне представляется что проще взять за основу ваши плагины типа Полигона, МакроПанели, чем с нуля писать.
И мне надо знать где лежит наиболее подходящая DLL-ка.
Вот вы мне ответите и дадите ДЛЛ, но это я такой нудный,
а другие люди более вежливые, и докапываться не будут

поэтому в общем.. ну как смог обьяснил

Упс, я думал я это Шмуэлю отвечаю.
Хотя общего смысла сказанного не меняет
Last edited by citRiks on Sat 15 Feb, 2020 12:35, edited 2 times in total.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
Панель для результатов поиска файлов
Ну вот поиск по автору на ПлагРинге:
нету ЛуаТмп (вы давали отдельно по просьбе), ЛуаМакроПанель (вы давали отдельно по просьбе), HighLight-а, macro2lua (вы давали отдельно по просьбе).
(Если что - менять критерии поиска с С++ на Lua, и ни Win95 на Win7 не помогло)
Но в общем меня устраивающий ответ я получил, спасибо!
надеюсь на дальнейшую помощь, и постараюсь глупостями не досаждать.
И чтобы два раз не вставать: А для HighLight'a LuaMacro.DLL сойдет?
чтобы два раз не вставать номер 2:
Как я уже писал, панельный модуль (Игоря) тормозит при двигании разделителя, а ваш LuaTmpPlugin - не тормозит.
Интересно почему и как с этим бороться? - это отдельный вопрос, но это надо выяснить и допилить,
а где собака порылась думаю что поможет выяснить сравнение с вашим ЛуаТмпПлагином.
И буду ли я брать за основу тормозящий ЛуаПанельМодуль?
Думаю что не буду, пока выясняется почему он тормозит,
я буду рад использовать вашу великодушно предоставленную альтернативу
нету ЛуаТмп (вы давали отдельно по просьбе), ЛуаМакроПанель (вы давали отдельно по просьбе), HighLight-а, macro2lua (вы давали отдельно по просьбе).
(Если что - менять критерии поиска с С++ на Lua, и ни Win95 на Win7 не помогло)
Но в общем меня устраивающий ответ я получил, спасибо!
надеюсь на дальнейшую помощь, и постараюсь глупостями не досаждать.
И чтобы два раз не вставать: А для HighLight'a LuaMacro.DLL сойдет?
чтобы два раз не вставать номер 2:
Как я уже писал, панельный модуль (Игоря) тормозит при двигании разделителя, а ваш LuaTmpPlugin - не тормозит.
Интересно почему и как с этим бороться? - это отдельный вопрос, но это надо выяснить и допилить,
а где собака порылась думаю что поможет выяснить сравнение с вашим ЛуаТмпПлагином.
И буду ли я брать за основу тормозящий ЛуаПанельМодуль?
Думаю что не буду, пока выясняется почему он тормозит,
я буду рад использовать вашу великодушно предоставленную альтернативу
Last edited by citRiks on Sat 15 Feb, 2020 12:17, edited 4 times in total.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
- John Doe
- Бюрократ
- Posts: 13001
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 40 times
- Been thanked: 310 times
Панель для результатов поиска файлов
Поиск по плагрингу по языку программирования.
Если вы такой нудный, то скачайте компилятор. Есть пару тем тут.
Но не знаю зачем это вам надо, ведь тенденция сейчас обратная: почти все возможности плагинов уже присутствуют в луамакро.
Плагины хоть и не мои, но отвечу.
Берите за основу любые плагины, пожалуйста. Они уже идут с длл.
(А если вдруг нет то можно взять от другого, а ещё лучше - скомпилировать самостоятельно)
Автору зарепортить.
Самостоятельно выяснить было бы хорошо, но определённая квалификация нужна.
https://t.me/FarManager — Telegram чат
Панель для результатов поиска файлов
В смысле задавать Луа а не С++? Я так пробовал, писал об этом. Ну не суть
ну... по всем поводам сразу я нудеть не успеваю, да и речь-то не про меня, впрочем тоже не суть
я только за, но рабочих панельных примеров маловато, которые есть пока хромают.
И немного напрягает выражение "почти все"

Идут не все, о чем я писал выше.
Ту же замечательную МакроПанель я лично выпрашивал, и выпросил.
но если бы такое все лежало в общем доступе, то наверное было бы лучше.
Ну не знаю, стараюсь не лезть с советами, хозяин - барин, а Шмуэль - крут.
и да, у меня раньше было больше неясностей какие ДЛЛ нужны для чего.
Сейчас уже меньше неясностей, спасибо всем.
Ну зарепортил, тут моих репортов две страницы тут.
Про квалификацию - многие достаточно квалифицированные кадры бессрочно забанены,
и сейчас прозябают на Ру-Боарде, или уже вообще нигде.
Может так им и надо, но теперь тут у нас квалифицированных меньше чем могло бы быть.
Дабы не совсем оффтопик, глюки и баги с датами в предмете обсуждения лежит гораздо глубже чем может показаться.
Потому что настройка короткого формата даты лежит здесь, и у меня например такая:
Code: Select all
[HKEY_CURRENT_USER\Control Panel\International]
"sShortDate"="yy/MM/dd"
Формат может быть любой неожиданный, и не зная этого формата можно как угодно некорректно интерпретировать даты,
падая ли с грохотом или что еще хуже втихую.
Хорошая же новость соcтоит в том, что этот формат можно спокойно взять из registry и правильно с ним интерпретировать строку.
И кстати, мне это подсказал пожизненно забаненный XeRoX (memberlist.php?mode=viewprofile&u=18909)
И про то что проблема в двухзначном годе он тоже первый сразу сказал,
я его прямо цитировал три страницы назад: viewtopic.php?p=158944#p158944
Last edited by citRiks on Sat 15 Feb, 2020 13:31, edited 2 times in total.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
- John Doe
- Бюрократ
- Posts: 13001
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 40 times
- Been thanked: 310 times
Панель для результатов поиска файлов
Вот и отлично. Возможно автор позже освободится.
Если хотите помочь иным образом - пожалуйста, но в рамках темы.
Пока что 90% обсуждения полный оффтопик, который я прекращаю комментировать.
https://t.me/FarManager — Telegram чат
Панель для результатов поиска файлов
У себя тоже вписал 14,13,0 вместо 0,0,0 и убрал костыль. Всё работает исправно.

Панель для результатов поиска файлов
При 14 выводится 4 цифры года. Главное, чтобы было не меньше 10. Если меньше, то только 2 цифры.
Но ошибка возникает в любом случае. Различие только в результатах поиска. Если цифр года было 2, то список выдаётся пустой. Если цифр 4, то уже нормальный.
Версия скрипта 1.2 не изменённая. По крайней мере сейчас хотя бы пусть с ошибкой, но результат есть. А то до этого (пока 2 цифры года было) толку от скрипта никакого не было. Хорошо, что я в своё время не успел удалить версию 1.1.2, её использовал.
Панель для результатов поиска файлов
Версия 1.2.1 -
- Настройка использования 7zip. С его помощью достаётся информация о файлах в архиве. Минус: медленней. Плюс: не зависит от настроек отображения информации на панели с результатами поиска файлов. По умолчанию там не выводится время файла, соответственно, его оттуда не взять. В принципе, могут быть и любые другие проблемы, обусловленные настройками пользователя. Пока не придумал идеального решения для данной потенциальной проблемы.
- Обработка F3/F4/F5/F6/F7/F8/Del в архивах. Не полностью скопировано поведение Far. В частности, F3/F4 открывают только во встроенном просмотрщике/редакторе. Удаление в корзину файлов из архива невозможно. Репорты о других возможных недочётах жду.
- Исправление обнаруженных ошибок. Вероятно, добавление новых.
- Рефакторинг.
Новая версия, вроде, не тормозила в процессе проверки. Проверяйте.
-
- Posts: 2304
- Joined: Sat 20 Apr, 2013 00:17
- Location: Питер
- Has thanked: 139 times
- Been thanked: 248 times
- Contact:
Панель для результатов поиска файлов
В моём форке к Вашему скрипту я эту проблему решил (точнее, смягчил) "фоновым" заполнением времени внутриархивных файлов.С тех пор я не следил за Вашим скриптом, но если что - используйте.
Правильно ли я понимаю, что используется то ли 7z.dll, то ли ArcLite? Если да - правильно ли я понимаю, что в скрипте не реализована редактирование/удаление в RAR-архивах (и, возможно, ещё некоторых)??
Панель для результатов поиска файлов
Спасибо, проверил, все-таки тормозит, и все таки падает:
я бы посоветовал обратить особое на эту строчку из скрина падения:
Text: 18/02/06│1899 K│N │ConEmu.exe, Flags:0
это короткая дата в формате yy/MM/dd
откуда брать форматы юзеров чтобы не падать на интерпретации дат я уже писал выше на этой же или предыдущей странице
Насчет тормозов - все-таки тормозит как и раньше, и на чистом профайле тоже..
но чтобы понять что тормозит, видимо надо сравнить с нативной панелью, или с этой панелью:
viewtopic.php?f=8&t=12022
В этой же теме написано как произвольно и не напряжно выбирать панель для вывода результатов,
что как раз будет полезно для так тестирования.
Bозможно вам будет удобно для тестривания тормозов по "CtrlQ" этот макрос (от @XeRoX):
https://github.com/dr-dba/LUA-FAR-STUFF ... .XeR0X.lua
(он самый функциональный из подобных)
Far Manager version 3.0.0.5555 x64
Win7 Professional SP1 x64
Last edited by citRiks on Sun 23 Feb, 2020 13:21, edited 4 times in total.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
Панель для результатов поиска файлов
Как ни крути, а вывод листинга в файл с последующим чтением требуют времени. Сейчас у меня родилась идея, как попытаться решить проблему радикально, но займусь этим чуть позже: дефицит времени.buniak_a_h wrote: ↑Fri 21 Feb, 2020 13:45В моём форке к Вашему скрипту я эту проблему решил (точнее, смягчил) "фоновым" заполнением времени внутриархивных файлов.С тех пор я не следил за Вашим скриптом, но если что - используйте.
ArcLite. Я не стал пока использовать сторонние инструменты (за исключением 7zip), чтобы не усложнять скрипт и сэкономить время написания. И да, разумеется: ArcLite на данный момент не умеет изменять архивы RAR.buniak_a_h wrote: ↑Fri 21 Feb, 2020 13:45Правильно ли я понимаю, что используется то ли 7z.dll, то ли ArcLite? Если да - правильно ли я понимаю, что в скрипте не реализована редактирование/удаление в RAR-архивах (и, возможно, ещё некоторых)??
Панель для результатов поиска файлов
Это вообще не дата (там нет привязки к конкретному разделителю, а для года стоит костыль), это короткое поле размера. Будете экономить каждый символ - будете и дальше нарываться на подобные проблемы.citRiks wrote: ↑Sat 22 Feb, 2020 22:02Спасибо, проверил, все-таки тормозит, и все таки падает:
я бы посоветовал обратить особое на эту строчку из скрина падения:
Text: 18/02/06│1899 K│N │ConEmu.exe, Flags:0
это короткая дата в формате yy/MM/dd
откуда брать форматы юзеров чтобы не падать на интерпретации дат я уже писал выше на этой же или предыдущей странице
Посмотрю ещё, как время будет.citRiks wrote: ↑Sat 22 Feb, 2020 22:02 Насчет тормозов - все-таки тормозит как и раньше, и на чистом профайле тоже..
но чтобы понять что тормозит, видимо надо сравнить с нативной панелью, или с этой панелью:
viewtopic.php?f=8&t=12022
В этой же теме написано как произвольно и не напряжно выбирать панель для вывода результатов,
что как раз будет полезно для так тестирования.
Bозможно вам будет удобно для тестривания тормозов по "CtrlQ" этот макрос (от @XeRoX):
https://github.com/dr-dba/LUA-FAR-STUFF ... .XeR0X.lua
(он самый функциональный из подобных)
Far Manager version 3.0.0.5555 x64
Win7 Professional SP1 x64
Панель для результатов поиска файлов
Версия 1.2.2 -
- Опциональная принудительная настройка колонок для списка результатов поиска. Теперь при включении данного режима вся информация о файлах (джентельменский набор: дата, время, размер, атрибуты) может быть взята непосредственно от Far, необходимости в использовании 7zip нет (хотя возможность оставлена). В данном режиме блокируются от ручного ввода поля настройки колонок списка найденных файлов. Ибо нечего туда лезть, если сам выбрал установку их скриптом в фиксированный вид.
- Рефакторинг. Вроде, теперь не осталось мест, где тормозило.
Панель для результатов поиска файлов
IgorZ,
да, сейчас чудесным образом не тормозит
можешь ли прокомментировать в чем было дело и где сидит изменение?
да, сейчас чудесным образом не тормозит
можешь ли прокомментировать в чем было дело и где сидит изменение?
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.