Страница 1 из 1
Плагин для поиска списка файлов
Добавлено: Чт май 27, 2010 22:13
den114
Подскажите есть ли плагин или скрипт для total commander, для поиска списка файлов на локальном компьютере. То есть в текстовом файле задаются файлы которые нужно искать с возможностью использования масок файлов (например с помощью звездочек).
Чтоб корректно и быстро работал с большим количеством файлов которые необходимо найти (от 3000 файлов и до 50 тыс).
Если нет ничего подобного готов ЗАПЛАТИТЬ за создание.
Добавлено: Чт май 27, 2010 23:11
Вахмурка
Свалять такой скрипт - дело нескольких часов. Остаются непонятными две вещи:
1) При чем здесь Тотал? Тебе нужна утилита, которая ищет файлы из списка. Для этого не то что Тотал, но и вообще никакой файл-менеджер, не нужен;
2) Если Тотал все-таки при чем, то четко ставь ТЗ. Что должен делать Тотал, если:
а) Найдены все файлы из списка;
б) Не найден ни один файл;
в) Найдены некоторые файлы;
г) Произошла ошибка (скажем, список содержит запрещенный в именах символ).
Впрочем, сдается мне, что сейчас Batya (vbs) и Tol!k (батник) наперегонки тебе такой скрипт нацарапают. Причем совершенно бесплатно.
Добавлено: Чт май 27, 2010 23:24
Batya
Вахмурка писал(а):Впрочем, сдается мне, что сейчас Batya (vbs) и Tol!k (батник) наперегонки тебе такой скрипт нацарапают. Причем совершенно бесплатно.
den114 писал(а):Подскажите есть ли плагин или скрипт для total commander, для поиска списка файлов на локальном компьютере. То есть в текстовом файле задаются файлы которые нужно искать с возможностью использования масок файлов (например с помощью звездочек).
Есть практически и
скрипт, и плагин, для которого этот скрипт используется. Только по маске не работает.
Добавлено: Чт май 27, 2010 23:34
Tol!k
Вахмурка писал(а):Впрочем, сдается мне, что сейчас Batya (vbs) и Tol!k (батник) наперегонки тебе такой скрипт нацарапают.
Нихачю.
Автор, чем родной поиск TC не устраивает? И маски ищет. Разве что список д.б. в строчку.
Добавлено: Чт май 27, 2010 23:53
den114
Вахмурка писал(а):Свалять такой скрипт - дело нескольких часов. Остаются непонятными две вещи:
1) При чем здесь Тотал? Тебе нужна утилита, которая ищет файлы из списка. Для этого не то что Тотал, но и вообще никакой файл-менеджер, не нужен;
2) Если Тотал все-таки при чем, то четко ставь ТЗ. Что должен делать Тотал, если:
а) Найдены все файлы из списка;
б) Не найден ни один файл;
в) Найдены некоторые файлы;
г) Произошла ошибка (скажем, список содержит запрещенный в именах символ).
1. После поиска нужно чтоб файлы выводило на панель TC для последующей работы с ними средствами TC так что тотал все таки нужен.
2. все реакции на ситуации от а) до г) должны быть такими же как в стандартном поске ТС когда задаешь поск небольшого списка файлов через разделитель
Например
Искать файлы : file1.txt;file2.txt;file3.txt;file4.txt
Tol!k писал(а):Автор, чем родной поиск TC не устраивает? И маски ищет. Разве что список д.б. в строчку.
У меня список из 30 тыс файлов, стандартный поиск TC с этим не справится поскольку там вроде ограничение в 1024 символа в строке поиска.
Добавлено: Пт май 28, 2010 10:56
MVV
Вывести список найденных файлов в панель результатов вряд ли получится, разве что в папку виртуальной панели - там запросто. Но в любом случае, одновременный поиск 30000 файлов (не представляю, зачем искать сразу такое число, у меня и папок нет, содержащих такое, разве что от дурацких программ и игрушек, которые до такого додумываются вместо создания простейшего игрового архива, пусть даже без сжатия) - это довольно долгая операция, потому как она требует перечисления всех заданных директорий диска с проверкой каждого файла на совпадение с каждым заданным именем файла из списка - то есть, если в папке 10000 файлов, а в списке - 1000 элементов, то нужно 10000 операций поиска файла и 10000000 операций сравнения имен, иначе никак.
Добавлено: Пт май 28, 2010 11:22
Вахмурка
2MVV
А можно ли импортировать такой список в базу VirtualPanel (с возможным "разворачиванием" звездочек и вопросов в реальные имена)? Тогда мы на выходе получим список таких файлов в VirtualPanel. А далее с ними можно делать все что угодно - искать, копировать, удалять, запускать... А несуществующие файлы отмечаются спец. иконкой и удаляются скриптом.
То есть шаг 1 - без символозаменителей (wildcards), шаг 2 - с ними, что гораздо сложнее, хотя бы в силу необходимости хреновой горы сравнений.
Добавлено: Пт май 28, 2010 11:45
MVV
Команда добавления файлов в VP поддерживает только полные пути с маской файлов, она не обрабатывает файлы в подпапках. Да и потом, она обрабатывала бы строки файла по одной, а не все сразу - а это гораздо дольше. Здесь поможет только скрипт, который выполнит поиск один раз для всего списка одновременно (то есть, проверит принадлежность каждого найденного при обходе заданных папок файла списку), а затем добавит на панель с помощью VPBatch - это если использовать виртуальную панель.
Добавлено: Пт май 28, 2010 11:49
den114
MVV писал(а): (не представляю, зачем искать сразу такое число, у меня и папок нет, содержащих такое, разве что от дурацких программ и игрушек, которые до такого додумываются вместо создания простейшего игрового архива, пусть даже без сжатия) - это довольно долгая операция, потому как она требует перечисления всех заданных директорий диска с проверкой каждого файла на совпадение с каждым заданным именем файла из списка - то есть, если в папке 10000 файлов, а в списке - 1000 элементов, то нужно 10000 операций поиска файла и 10000000 операций сравнения имен, иначе никак.
Что ж сделаешь, работа у меня такая, а общий объем поиска переваливает за 2 млн файлов. Кстати 10000000 оаераций вовсе не обязателен, если использовать более сложные алгоритмы поика, ну например использование бинарного дерева. Но вобщем именно за это и готов заплатить.
Добавлено: Пт май 28, 2010 11:52
MVV
А каким образом дерево, пусть и бинарное (хотя они практически все бинарные

) позволит не сравнивать имя очередного кандидата со всеми масками из списка? Как еще проверить, удовлетворяет ли это имя хотя бы одной из них?
Хотя, возможно, можно разбить имена из списка по символам и использовать ассоциативные массивы с символьным ключом, это позволит быстро отсеивать неподходящие имена, но с масками тут будет куда сложнее, в частности с символом *, так как тут придется пропускать все возможные количества символов и при каждом искать дальнейшие совпадения. Такая задача даже интересна.
Добавлено: Пт май 28, 2010 12:21
VadiMGP
den114
Если список твоих масок меняется редко, то можешь настроить группы файлов в плагине FileX и искать обычным поиском ТС.
http://wincmd.ru/plugring/FileX.html
Добавлено: Пт май 28, 2010 12:53
Andrey_A
Я когда-то тоже сталкивался с поиском большого числа файлов из списка в подкаталогах. Пытался это сделать поиском, но в связи с ограничением строки, нашлось два решения
1.Если файл список содержит конкретные файлы (без звёздочек)
- cm_DirBranch (раскрытие подпапок)
- cm_LoadSelectionFromFile (загрузка выделения из файла)
- cm_ShowOnlySelected (показать только выделенное)
вот и все искомые файлы на панели...
2 способ. Использование плагина FileX, где в ini файле я вписал около 4000 файлов по дести секциям по 400 файлов
секция_1=(400 файлов разделённые ":")
секция_2=...
...
В строке можно использовать "*", "?", "|"
Дальше настраиваешь новый набор колонок - и в результате нужные файлы видны
Можно сделать шаблон для поиска, с помощью которого можно
- искать по шаблону
- выделять по шаблону
- копировать по шаблону
.....
Может это не совсем то, но мне помогло когда-то (смотря конечно какие файлы и маски)