Страница 1 из 2

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

Добавлено: Ср май 06, 2009 20:58
Тагарищ_Ы
Доброго дня! Подскажите, пожалуйста, как в коммандере можно выделить файлы по заданной формуле, например "index % 2" - все чётные и т.д.

Добавлено: Ср май 06, 2009 23:45
CaptainFlint
Тагарищ_Ы
Например, вот этим: http://powerpro.wincmd.ru/Scripts/MarkStep.htm

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

Добавлено: Чт май 07, 2009 01:10
Тагарищ_Ы
CaptainFlint, благодарю. Для начала сойдёт и так.
DrShark, ну в идеале, хотелось бы, чтобы был разбор выражений. В моём примере чётность основывается на остатке от целочисленного деления переменной index(порядковый номер файла в списке) на число 2. Но было бы неплохо иметь возможность использования и таких записей: "int(filename[5,2]) % 3" или "int(extention) * 2^index"

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

Добавлено: Чт май 07, 2009 20:28
Тагарищ_Ы
А регекс разве поддерживает арифметические вычисления?

Добавлено: Чт май 07, 2009 21:26
DrShark
Тоталовский RegEx не поддерживает, хотя такие простые вещи как проверку на чётность организовать можно. По-этому я и упомянул о контентных плагинах. Можно написать vbs-скрипт для Script Content Plugin, который будет парсить имена файлов по этим формулам, и использовать его в колонках или в поиске...

Добавлено: Чт май 07, 2009 21:29
Тагарищ_Ы
Спасибо за наводку.

Добавлено: Чт май 07, 2009 22:53
Batya
Тагарищ_Ы
А в чем практическая польза такого выделения?

Добавлено: Пт май 08, 2009 07:45
Тагарищ_Ы
Batya, ну если взять мой случай, то я резал видео на куски и вышло около 2000 сегментов. Нужно было оставить только каждый третий кусок. Также, как-то давно требовалось оставить файлы "2 через 3, 2 через 2", но не нашёл готового решения и пришлось программулину состряпать.

Добавлено: Пт май 08, 2009 15:46
Batya
Тагарищ_Ы
Можно сделать колонку с номером куска и отсортироваться по этой колонке. Далее легко выделяешь, что угодно.

Добавлено: Пт май 08, 2009 18:25
Тагарищ_Ы
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 в несколько проходов и инверсий вероятно может это сделать. Но для этого с ним долго поиграться нужно. А вот как это сделать с помощью дополнительной колонки я не очень представляю.

Добавлено: Пт май 08, 2009 20:39
Вахмурка
2CaptainFlint
Спасибо за рекламу.

2Тагарищ_Ы
Скрипт в его нынешней редакции в ТС 7.5х работать не будет, хотя бы потому, что класс окна сменился с TTOTAL_CMD на TTOTAL_CMD.UnicodeClass. Переход на Юникод, к сожалению, сделал неработоспособными часть моих скриптов, в частности, MarkStep. Как раз в эти дни я занят рихтовкой моих скриптов с учетом новшеств последней версии ТС. Так что, если другого пути, кроме MarkStep, найдено не будет, есть два выхода:
1) Временно не переходить на 7.5 (или временно же поставить 7.0);
2) Подождать недельку-другую, пока я закончу работу.

Добавлено: Пт май 08, 2009 22:02
Тагарищ_Ы
Вахмурка, спасибо за хорошие скрипты. Я пока на 7.04 сижу. Так что, трудностей нету))

Добавлено: Сб май 09, 2009 09:47
Вахмурка
Хорошо, раз так. Надеюсь, ты уже понял, что скрипт можно запускать несколько раз для одного списка. То есть если в маркировке есть хоть какая-то регулярность, скрипт ее точно может воспроизвести. Видимо, именно эту последовательность с цифрами шагов и флагом "поставить/снять выделение" и можно назвать "формулой".