Выделение файлов по формуле

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Тагарищ_Ы
Сообщения: 8
Зарегистрирован: Ср май 06, 2009 20:53

Выделение файлов по формуле

Сообщение Тагарищ_Ы »

Доброго дня! Подскажите, пожалуйста, как в коммандере можно выделить файлы по заданной формуле, например "index % 2" - все чётные и т.д.
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

Тагарищ_Ы
Например, вот этим: http://powerpro.wincmd.ru/Scripts/MarkStep.htm
Почему же, ё-моё, ты нигде не пишешь "ё"?
DrShark
Сообщения: 911
Зарегистрирован: Сб окт 21, 2006 20:27
Откуда: Kyiv, Ukraine
Контактная информация:

Сообщение DrShark »

Тагарищ_Ы писал(а):например "index % 2" - все чётные и т.д.
Т.е. "чётность" основывается на имени? Можно пример?
Вообще, тебя интересует этот частный случай
или таких формул у тебя несколько? :)
Если несколько, то, скорее всего, придётся писать отдельный скрипт под каждую формулу.
Тагарищ_Ы
Сообщения: 8
Зарегистрирован: Ср май 06, 2009 20:53

Сообщение Тагарищ_Ы »

CaptainFlint, благодарю. Для начала сойдёт и так.
DrShark, ну в идеале, хотелось бы, чтобы был разбор выражений. В моём примере чётность основывается на остатке от целочисленного деления переменной index(порядковый номер файла в списке) на число 2. Но было бы неплохо иметь возможность использования и таких записей: "int(filename[5,2]) % 3" или "int(extention) * 2^index"
DrShark
Сообщения: 911
Зарегистрирован: Сб окт 21, 2006 20:27
Откуда: Kyiv, Ukraine
Контактная информация:

Сообщение DrShark »

Тагарищ_Ы писал(а):Но было бы неплохо иметь возможность использования и таких записей: "int(filename[5,2]) % 3" или "int(extention) * 2^index"
Для этих задач вполне подойдут регулярные выражения или Script Content plugin.
В таком случае можно пойти следующим путём: Поиск с испольрованием RegEx или плагина (Alt+F7). При необходимости, глубину поиска ограничить до "Только текущий". Далее - файлы на панель.
Тагарищ_Ы
Сообщения: 8
Зарегистрирован: Ср май 06, 2009 20:53

Сообщение Тагарищ_Ы »

А регекс разве поддерживает арифметические вычисления?
DrShark
Сообщения: 911
Зарегистрирован: Сб окт 21, 2006 20:27
Откуда: Kyiv, Ukraine
Контактная информация:

Сообщение DrShark »

Тоталовский RegEx не поддерживает, хотя такие простые вещи как проверку на чётность организовать можно. По-этому я и упомянул о контентных плагинах. Можно написать vbs-скрипт для Script Content Plugin, который будет парсить имена файлов по этим формулам, и использовать его в колонках или в поиске...
Тагарищ_Ы
Сообщения: 8
Зарегистрирован: Ср май 06, 2009 20:53

Сообщение Тагарищ_Ы »

Спасибо за наводку.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Тагарищ_Ы
А в чем практическая польза такого выделения?
Нет, я не сплю. Я просто медленно моргаю.
Тагарищ_Ы
Сообщения: 8
Зарегистрирован: Ср май 06, 2009 20:53

Сообщение Тагарищ_Ы »

Batya, ну если взять мой случай, то я резал видео на куски и вышло около 2000 сегментов. Нужно было оставить только каждый третий кусок. Также, как-то давно требовалось оставить файлы "2 через 3, 2 через 2", но не нашёл готового решения и пришлось программулину состряпать.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Тагарищ_Ы
Можно сделать колонку с номером куска и отсортироваться по этой колонке. Далее легко выделяешь, что угодно.
Нет, я не сплю. Я просто медленно моргаю.
Тагарищ_Ы
Сообщения: 8
Зарегистрирован: Ср май 06, 2009 20:53

Сообщение Тагарищ_Ы »

Batya, если брать мой второй случай, то файлы имели вид table_xxxx.xml, где xxxx - целое число от 0000 до 9999. Т.е. уже всё упорядоченно. Выделить нужно было так:
table_0000.xml
table_0001.xml
table_0002.xml
table_0003.xml
table_0004.xml
table_0005.xml
table_0006.xml
table_0007.xml
table_0008.xml
table_0009.xml
table_0010.xml
table_0011.xml
table_0012.xml
table_0013.xml
table_0014.xml
table_0015.xml
table_0016.xml
table_0017.xml

MarkStep в несколько проходов и инверсий вероятно может это сделать. Но для этого с ним долго поиграться нужно. А вот как это сделать с помощью дополнительной колонки я не очень представляю.
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

2CaptainFlint
Спасибо за рекламу.

2Тагарищ_Ы
Скрипт в его нынешней редакции в ТС 7.5х работать не будет, хотя бы потому, что класс окна сменился с TTOTAL_CMD на TTOTAL_CMD.UnicodeClass. Переход на Юникод, к сожалению, сделал неработоспособными часть моих скриптов, в частности, MarkStep. Как раз в эти дни я занят рихтовкой моих скриптов с учетом новшеств последней версии ТС. Так что, если другого пути, кроме MarkStep, найдено не будет, есть два выхода:
1) Временно не переходить на 7.5 (или временно же поставить 7.0);
2) Подождать недельку-другую, пока я закончу работу.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Тагарищ_Ы
Сообщения: 8
Зарегистрирован: Ср май 06, 2009 20:53

Сообщение Тагарищ_Ы »

Вахмурка, спасибо за хорошие скрипты. Я пока на 7.04 сижу. Так что, трудностей нету))
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Хорошо, раз так. Надеюсь, ты уже понял, что скрипт можно запускать несколько раз для одного списка. То есть если в маркировке есть хоть какая-то регулярность, скрипт ее точно может воспроизвести. Видимо, именно эту последовательность с цифрами шагов и флагом "поставить/снять выделение" и можно назвать "формулой".
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Ответить