LUA File List: «один файл — одна строка»

Здесь можно обсудить ваш любимый плагин.
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

LUA File List

Post by ladserg »

Latest post of the previous page:

Alexander84 wrote:
Возможно, стоит попробовать подход, предложенный HaRT, т.е. оставить %rD и две галки, добавив на последнем шаге уборку дублей.
Она не лишняя, это же тоже каталог, а дублей, как я писал, нет и не было, у каждой строчки были разные файлы. HaRT описывал алгоритм не для этого плагина, не для списка файлов.

Скорее вы для своих целей просто используете неподходящий инструмент.
Last edited by ladserg on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Спрятан оверквотинг
User avatar
Alexander84
Posts: 147
Joined: Fri 01 May, 2009 06:38
Has thanked: 16 times
Been thanked: 2 times

LUA File List

Post by Alexander84 »

Исхожу из того, что если пишешь %D, то плагин уделит больше внимания папкам, чем файлам. Т.е. пусть в «Семнадцати мгновениях весны» лежит 17 файлов, но если просишь имя папки, чего писать её 17 раз? Возможно, стоит ввести не дополнительную галку, а модификатор типа %ruD, т.е. взять иерархию папок и сохранить с относительным путём только уникальные (u, т.е. unique) названия. Это необязательно делать вот прям сейчас, но, как вы сказали, задача «на подумать».

P.S. А James Bond сама по себе всё ж лишняя, ведь в ней нет файлов, а только подпапки, которые и нужно перечислить.
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

LUA File List

Post by ladserg »

Alexander84 wrote:Исхожу из того, что если пишешь %D, то плагин уделит больше внимания папкам, чем файлам. Т.е. пусть в «Семнадцати мгновениях весны» лежит 17 файлов, но если просишь имя папки, чего писать её 17 раз? Возможно, стоит ввести не дополнительную галку, а модификатор типа %ruD, т.е. взять иерархию папок и сохранить с относительным путём только уникальные (u, т.е. unique) названия. Это необязательно делать вот прям сейчас, но, как вы сказали, задача «на подумать».

P.S. А James Bond сама по себе всё ж лишняя, ведь в ней нет файлов, а только подпапки, которые и нужно перечислить.
Ещё раз поясню, плагин создаёт список файлов, и для каждого выводит сктроку согласно пользовательскому шаблону, поле %D просто говорит, что в этом месте выведи каталог файла. И не зависимо от того, выводите вы в этой строке имя файла или нет, файл всё равно есть и строка для него будет сгенерирована, ибо полные имена файлов - разные.

Если в каталоге 17 файлов, то и строк будет 17, потому что файлов 17, при этом сам каталог, где лежат файлы - это тоже файл, только у него есть флаг каталога, а в остальном он обычный файл. Папка James Bond в рамках задач именно этого плагина не лишняя, ибо в ней всё же есть файлы, при этом вложенный каталог сам является файлом.

Вы просто используете не тот инструмент для своих задач. Если вам нужно взять список файлов и вывести его согласно своему шаблону - этот плагин вам в этом поможет.

Для создания структуры каталогов этот плагин не предназначен, у него задача иная. Это не тот инструмент. Не для этого создан.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

LUA File List

Post by HaRT »

ladserg wrote: HaRT описывал алгоритм не для этого плагина, не для списка файлов
Пользователь просит расширить функциональность плагина, ослабив ограничение «один файл — одна строка». Предлагается добавить дополнительную фильтрацию результирующих строк — и вот там иметь возможность не выводить дубликаты (строк).
Фар есть инструмент, а не нянька. © 2009 DrKnS
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

LUA File List

Post by ladserg »

HaRT wrote:
ladserg wrote: HaRT описывал алгоритм не для этого плагина, не для списка файлов
Пользователь просит расширить функциональность плагина, ослабив ограничение «один файл — одна строка». Предлагается добавить дополнительную фильтрацию результирующих строк — и вот там иметь возможность не выводить дубликаты (строк).
Один файл - одна строка - это не ограничение, это задача плагина. Для иных задач нужен другой плагин, с другой задачей. И фильтрацию я добавил, есть возможность отключить вывод непапок в результат. Просто пользователь пытается использовать плагин для того, для чего он не предназначен.
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

LUA File List

Post by ladserg »

Можно добавить фильтр, исключающий каталоги, у которых есть подкаталоги. В рамках предназначения данного плагина - это возможно. С течением времени я добавлю такую опцию.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

LUA File List

Post by HaRT »

ladserg wrote: Один файл - одна строка - это не ограничение, это задача плагина
Перефразирую свою мысль.
Вот возьмём для примера SQL-запрос SELECT: там есть WHERE, чтобы отфильтровать записи, а есть GROUP BY, чтобы агрегировать их по какому-то признаку. А в Вашем плагине фильтрация есть, а агрегирования (в обсуждаемом случае — по директории) нет. И вот о такой-то возможности Вас тут и просят.
Фар есть инструмент, а не нянька. © 2009 DrKnS
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

LUA File List

Post by ladserg »

HaRT wrote: Перефразирую свою мысль.
Вот возьмём для примера SQL-запрос SELECT: там есть WHERE, чтобы отфильтровать записи, а есть GROUP BY, чтобы агрегировать их по какому-то признаку. А в Вашем плагине фильтрация есть, а агрегирования (в обсуждаемом случае — по директории) нет. И вот о такой-то возможности Вас тут и просят.
Думаю нет смысла спорить, вы не можете понять, что требуете написать новый плагин под иную задачу, это всё равно, что к утюгу приделывать морозильную камеру.

И не просил пользователь никакой фильтрации, ему надо составить дерево каталогов с выводом конечных листьев. Для этого ему нужен плагин для работы с каталогами, а не с файлами.

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

Неужели в жизни вы забиваете гвозди лопатой, а копаете носовым платком? Ведь тут точно такой же случай.

В крайнем случае код плагина открыт, допишите то что желаете, я буду рад посмотреть и научиться чему новому.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

LUA File List

Post by HaRT »

ladserg wrote: вы не можете понять
ladserg wrote: вы в невнимательности своей не обратили внимания
ladserg wrote: Неужели в жизни вы забиваете гвозди лопатой, а копаете носовым платком?
Спасибо, я Вас тоже люблю и ценю. И при случае отплачу той же монетой.
Фар есть инструмент, а не нянька. © 2009 DrKnS
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

LUA File List: «один файл — одна строка»

Post by ladserg »

Изменения в версии 2016-04-08-0:
  • Добавлена опция "Исключить промежуточные каталоги", исключающая из списка каталоги, имеющие подкаталоги.
  • Заменена опция "Не включать в список файлы в каталогах" на "Не включать в список файлы", теперь она исключает из списка даже
    выделенные файлы.
tyrex
Posts: 41
Joined: Fri 17 Jul, 2009 08:14

LUA File List: «один файл — одна строка»

Post by tyrex »

Отличный плагин, спасибо за него!

Есть одно пожелание.
При формировании списка файлов из панели NetBox (скажем, с FTP), нет возможности подставить перед именем файла текущее местоположение (ссылку). Хотелось бы, чтобы %P подставлял действительно текущее положение. Или можно добавить отдельным параметром
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

LUA File List: «один файл — одна строка»

Post by ladserg »

tyrex wrote: Отличный плагин, спасибо за него!

Есть одно пожелание.
При формировании списка файлов из панели NetBox (скажем, с FTP), нет возможности подставить перед именем файла текущее местоположение (ссылку). Хотелось бы, чтобы %P подставлял действительно текущее положение. Или можно добавить отдельным параметром
Понял, посмотрю чуть поже как он работает с FTP и что можно придумать.
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

LUA File List: «один файл — одна строка»

Post by ladserg »

И по возможности приведите пример как должно выглядеть желаемое
Last edited by ladserg on Sun 22 Jan, 2017 14:27, edited 1 time in total.
tyrex
Posts: 41
Joined: Fri 17 Jul, 2009 08:14

LUA File List: «один файл — одна строка»

Post by tyrex »

Баг.

Если имя файла содержит символ @ и представляет собой что-нибудь вроде "welcome@123", то плагин начисто игнорирует в имени все, что находится после этого символа.

Пример.
Вход:
welcome@1
welcome@2
welcome@3

Результат:
welcome
welcome
welcome
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

LUA File List: «один файл — одна строка»

Post by ladserg »

tyrex wrote: Tue 08 Aug, 2017 10:01Баг.
Какая строка поиска? Какой формат строки? При строке %P %F у меня не удаётся воспроизвести проблему. Если не затруднит, то скажите как у вас плагин ведёт себя с такой строкой.

И если можно приведите версию плагина и Far'а.
Last edited by ladserg on Tue 08 Aug, 2017 10:24, edited 1 time in total.
skipik
Posts: 318
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 67 times
Been thanked: 29 times

LUA File List: «один файл — одна строка»

Post by skipik »

ladserg, _globalinfo надо поправить - ноль добавить, иначе:

Code: Select all

   ╔═════════════════════════ Ошибка ══════════════════════════╗
   ║ Для работы этого плагина требуется более новая версия Far ║
   ║         C:\Soft\Far\plugins\lflist\lflist-x64.dll         ║
   ║            Требуемая версия Far - 3.0.4040.0,             ║
   ║             текущая версия Far - 3.0.0.5570.              ║
   ╟───────────────────────────────────────────────────────────╢
   ║                          { OK }                           ║
   ╚═══════════════════════════════════════════════════════════╝
P.S. для lfblock - аналогично.
Post Reply

Return to “Обсуждение плагинов”