Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Алгоритм переименования

241
07 февраля 2006 года
Sanila_san
1.6K / / 07.06.2005
Условие: есть 130 файлов .jpg, каждый представляет собой фотокопию книжной страницы. #1..64 - нечётные страницы, #65..130 - чётные. Требуется переименовать последовательность вида 1, 130, 2, 129, 3, 128... к виду 1, 2, 3...

Средство - инструмент Batch rename просмотровщика IrfanView. Этот инструмент переименовывает файлы по списку сверху вниз. Как их положишь в список, так и переименует.

Спрашивается, как заполнить список оптимальным способом, не прибегая к написанию посторонней программы, и используя только средства выделения Windows Explorer, а также ринеймер просмотровщика.
241
08 февраля 2006 года
Sanila_san
1.6K / / 07.06.2005
Цитата:
Originally posted by Sanila_san
Спрашивается, как заполнить список оптимальным способом, не прибегая к написанию посторонней программы, и используя только средства выделения Windows Explorer, а также ринеймер просмотровщика.



Подсказываю: я решил эту задачу в два подхода. Первый - переименовать чётные файлы так, чтобы номера численно равнялись номерам нечётных, а количество нулей слева было хотя бы на один меньше. То есть, нечётный файл имеет номер 0001, а чётный - 001, и т.д. Виндоуз Эксплорер автоматически отсортирует их в нужном порядке, после чего их надо ещё раз потоком переименовать для удобства.

По-моему, вполне программерская задача. :)

1.8K
08 февраля 2006 года
LM(AL/M)
332 / / 20.12.2005
Цитата:
Originally posted by Sanila_san
Подсказываю: я решил эту задачу в два подхода. Первый - переименовать чётные файлы так, чтобы номера численно равнялись номерам нечётных, а количество нулей слева было хотя бы на один меньше. То есть, нечётный файл имеет номер 0001, а чётный - 001, и т.д. Виндоуз Эксплорер автоматически отсортирует их в нужном порядке, после чего их надо ещё раз потоком переименовать для удобства.

По-моему, вполне программерская задача. :)


один вопрос: а как вы переименовывали четные файлы?

241
09 февраля 2006 года
Sanila_san
1.6K / / 07.06.2005
Цитата:
Originally posted by LM(AL/M)
один вопрос: а как вы переименовывали четные файлы?



Это просто. Нечётные файлы имеют номера 1..64, чётные - 65..130. Нечётные переименовал по маске ####, а чётные - по маске ###, а номера численно те же. В результате WinExplorer упорядочил всё сам. Дальше было делом техники. Задача сводилась к тому, чтобы правильно чередовать нечётные с чётными. Поэтому я просто использовал свойства сортировки WinExplorer.

1.8K
09 февраля 2006 года
LM(AL/M)
332 / / 20.12.2005
Цитата:
Originally posted by Sanila_san
Это просто. Нечётные файлы имеют номера 1..64, чётные - 65..130. Нечётные переименовал по маске ####, а чётные - по маске ###, а номера численно те же. В результате WinExplorer упорядочил всё сам. Дальше было делом техники. Задача сводилась к тому, чтобы правильно чередовать нечётные с чётными. Поэтому я просто использовал свойства сортировки WinExplorer.



честно говоря я все таки не понимаю. #### -- это маска которая задает нечетные числа ? или как? или вы просто сначала вручную выделили все нечетные-переименовали их по маске, а потом точно так же поступили с четными?

если это так тогда это не есть решение задачи в полном смысле этого слова

241
09 февраля 2006 года
Sanila_san
1.6K / / 07.06.2005
Цитата:
Originally posted by LM(AL/M)
честно говоря я все таки не понимаю. #### -- это маска которая задает нечетные числа ? или как? или вы просто сначала вручную выделили все нечетные-переименовали их по маске, а потом точно так же поступили с четными?



Нет, это не так.
1. Включаем IrfanView. В нём есть инструмент пакетного переименования. Этот инструмент переименовывает по порядку, в котором файлы лежат в списке. Задача - автоматизировать упорядочивание списка.
2. Переименовываем нечётные файлы так, чтобы трёхсимвольные имена превратились в четырёхсимвольные вида 0001.jpg, 0002.jpg и т.д. Это делается потому, что по дефолту все имена состояли из четырёх символов.
3. Переименовываем чётные файлы от вида 065.jpg, 066.jpg...130.jpg к виду 001.jpg, 002.jpg...065.jpg
4. Windows Explorer делает Sort by Name, в результате чего файлы встают в правильном порядке.
5. Для удобства переименовываем всю ораву файлов по какой-нибудь удобной маске, чтобы потом все просмотровщики не парились.

Маска переименования задаёт количество цифр в имени при помощи знака #. Например, маска #### даёт имя длиной 4 цифры.

Если кто не юзал IrfanView, поясню на примере MSDOS.

Команда

 
Код:
ren *.jpg New*.jpg


В результате прибавится префикс New. IView делает примерно по этому же принципу.
241
09 февраля 2006 года
Sanila_san
1.6K / / 07.06.2005
Цитата:
Originally posted by LM(AL/M)
один вопрос: а как вы переименовывали четные файлы?



В аттаче картинка, там всё видно воочию.

1.8K
09 февраля 2006 года
LM(AL/M)
332 / / 20.12.2005
Цитата:
Originally posted by Sanila_san
Нет, это не так.
1. Включаем IrfanView. В нём есть инструмент пакетного переименования. Этот инструмент переименовывает по порядку, в котором файлы лежат в списке. Задача - автоматизировать упорядочивание списка.
2. Переименовываем нечётные файлы так, чтобы трёхсимвольные имена превратились в четырёхсимвольные вида 0001.jpg, 0002.jpg и т.д. Это делается потому, что по дефолту все имена состояли из четырёх символов.
3. Переименовываем чётные файлы от вида 065.jpg, 066.jpg...130.jpg к виду 001.jpg, 002.jpg...065.jpg
4. Windows Explorer делает Sort by Name, в результате чего файлы встают в правильном порядке.
5. Для удобства переименовываем всю ораву файлов по какой-нибудь удобной маске, чтобы потом все просмотровщики не парились.

Маска переименования задаёт количество цифр в имени при помощи знака #. Например, маска #### даёт имя длиной 4 цифры.

Если кто не юзал IrfanView, поясню на примере MSDOS.

Команда
 
Код:
ren *.jpg New*.jpg


В результате прибавится префикс New. IView делает примерно по этому же принципу.



спасибо за картинку но она ничего не обясняет и не показывает ибо я прекрасно понимаю что если файлы попереименовать таким образом то эксплорер их отсортирует

но я не о том. вопрос мой вот вчем: как именно вы множество файлов (1, 3, ... , 133, 135) преобразуете к тому что надо ? главное что меня волнует -- нужно ли для этого вручную выделять все нечетные файлы ?

11K
09 февраля 2006 года
fantom1983
24 / / 21.10.2005
Я вообще не понимаю, а не проще написать прожку которая это все делала в автоматическом режиме.
Условия чтото пипа
for (i:=0;i<64;i:=i+1)
{
rename ((i+1).jpg->(1+(i*2)).jpg);
rename ((i+65).jpg->(2+(i*2)).jpg);
}
Вот и все проблеми:angel:
Р.С. Здесь написана схематика ток что не придирайтесь к синтаксису, лутше идею возьмите
241
09 февраля 2006 года
Sanila_san
1.6K / / 07.06.2005
Цитата:
Originally posted by LM(AL/M)
вопрос мой вот вчем: как именно вы множество файлов (1, 3, ... , 133, 135) преобразуете к тому что надо ?



Виноват, не уточнил сразу. Переснималась книга. Страницы книги пронумерованы, номера на картинке видно видно. Кроме прочего, я и так знал, что первые 64 кадра - ВСЕ нечётные, а с 65 до 130 - ВСЕ чётные. И, чтобы не таскать в список файлы в последовательности 1, 65, 2, 66, 3, 67.. n, 64+n, я просто переименовал их в пакетном режиме, чтобы Эксплорер отсортировал их так, как показано на картинке.

Просто файлы должны читаться просмотровщиком в том же порядке, что и страницы реальной книги человеком.

Я сейчас подумал, что при помощи дополительной папки можно было бы сделать всё только средствами командной строки. Дополнительная папка нужна, поскольку я плохо знаком с тонкостями синтаксиса команды ren.

241
09 февраля 2006 года
Sanila_san
1.6K / / 07.06.2005
Цитата:
Originally posted by fantom1983
Я вообще не понимаю, а не проще написать прожку которая это все делала в автоматическом режиме.



Можно, однако не очень логично. Я с этого и начал, а потом решил, что целесообразнее решить имеющимися средствами. Прога-то одноразовая, так на кой она вообще нужна?

Интересно, что на работе меня тоже товарищи укоряли за отказ от написания проги. :)

11K
09 февраля 2006 года
fantom1983
24 / / 21.10.2005
Цитата:
Originally posted by LM(AL/M)
вынужден констатировать что вы так и не ответили на мой вопрос () поэтому попоршу вас сделать еще одну попытку


Програмка пишется за 16 минут (это вмести с тестами и создаванием файлов (блин это было самое трудное)). Лично проверял 8) . Только что :!!!: .
Так что напиши прогу и все дела, а то флудиш тут по черному :devil: , и от серъозных дел отвлекаеш:!!!:

Р.С. Слушай больше друзей:!!!:

С уважением Юрий.

241
09 февраля 2006 года
Sanila_san
1.6K / / 07.06.2005
Цитата:
Originally posted by LM(AL/M)
как именно вы множество файлов (1, 3, ... , 133, 135) преобразуете к тому что надо ? главное что меня волнует -- нужно ли для этого вручную выделять все нечетные файлы ?



0. В Irfan View реализован описанный в одном из постов метод переименования. Для понятности лучше всего взять IrfanView здесь, и протестировать.

1. Вручную надо сделать два выделения. LClick по 1-му, Shift+LClick по 64-му. Потом перетаскиваем в список ринеймера, дальше он всё делает сам. Аналогичое действие для файлов с 65 по 130. Эти действия есть технология работы с ринеймером просмотровщика. Это такой же неизбежный ручной труд, как при наборе текста.

2. Вручную выделять все нечётные файлы надо, но это делается методом из п.1, поскольку они все стоят друг за другом. А кликать по каждому не нужно.

3. К тому, что надо, я привожу последовательность файлов при помощи средств имеющегося инструмента. По сути, задача сведена к следующему: переименовать так, чтобы ничего не сортировать руками. Мне это удалось - вместо меня сортировал Эксплорер. Вот и всё.

1.8K
09 февраля 2006 года
LM(AL/M)
332 / / 20.12.2005
Цитата:
Originally posted by Sanila_san
0. В Irfan View реализован описанный в одном из постов метод переименования. Для понятности лучше всего взять IrfanView здесь, и протестировать.

1. Вручную надо сделать два выделения. LClick по 1-му, Shift+LClick по 64-му. Потом перетаскиваем в список ринеймера, дальше он всё делает сам. Аналогичое действие для файлов с 65 по 130. Эти действия есть технология работы с ринеймером просмотровщика. Это такой же неизбежный ручной труд, как при наборе текста.

2. Вручную выделять все нечётные файлы надо, но это делается методом из п.1, поскольку они все стоят друг за другом. А кликать по каждому не нужно.

3. К тому, что надо, я привожу последовательность файлов при помощи средств имеющегося инструмента. По сути, задача сведена к следующему: переименовать так, чтобы ничего не сортировать руками. Мне это удалось - вместо меня сортировал Эксплорер. Вот и всё.



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

я предложил следующее усовершенствование:

for %i in (2,4,6,8,0) do copy *%i.* folder1
-- четные
for %i in (1,3,5,7,9) do copy *%i.* folder2
-- нечетные

а потом подключить irfanview

269
09 февраля 2006 года
Greenering
892 / / 04.02.2003
В Тотал Коммандере есть инструмент (групповое перименование) - зачем велосипед выдумавать?
1.8K
09 февраля 2006 года
LM(AL/M)
332 / / 20.12.2005
Цитата:
Originally posted by Greenering
В Тотал Коммандере есть инструмент (групповое перименование) - зачем велосипед выдумавать?



да знают все про тотал, но переименовывает он только выделенные файлы -- спрашиваецца как их выделить если их дофига ?

269
09 февраля 2006 года
Greenering
892 / / 04.02.2003
Цитата:
Originally posted by LM(AL/M)
да знают все про тотал, но переименовывает он только выделенные файлы -- спрашиваецца как их выделить если их дофига ?


alt - F7
*.jpg
файлы на панель

1.8K
09 февраля 2006 года
LM(AL/M)
332 / / 20.12.2005
Цитата:
Originally posted by Greenering
alt - F7
*.jpg
файлы на панель



хорошо ! мне даже понравилась идея
только это то же самое что и "+" --> "*.jpg"

а как выделить только файлы с четными номерами ?

269
09 февраля 2006 года
Greenering
892 / / 04.02.2003
Цитата:
Originally posted by LM(AL/M)
хорошо ! мне даже понравилась идея
только это то же самое что и "+" --> "*.jpg"

а как выделить только файлы с четными номерами ?


Задача стояла переименовать, а не выделить!

1.8K
09 февраля 2006 года
LM(AL/M)
332 / / 20.12.2005
тут уже пошла игра словами...

Цитата:

alt - F7
*.jpg
файлы на панель

-- не подходит, или вы можете предложить маску с помощью которой можно выделить четные/нечетные номера?

241
10 февраля 2006 года
Sanila_san
1.6K / / 07.06.2005
Цитата:
Originally posted by LM(AL/M)
а как выделить только файлы с четными номерами?



Я же говорил когда-то, что первая половина массива - все чётные, вторая - все нечётные. Там что ТоталКоммандер, что вьюер, что чёрт лысый - всё едино. А выделять половину хоть из 130, хоть из 1000 файлов по любому надо руками. Или самописной программой. А руками 500 файлов выделить ничуть не сложнее, чем 65. LClick -> Shift+LClick. И всё.

Просто у меня нет Total Commander.

1.8K
10 февраля 2006 года
LM(AL/M)
332 / / 20.12.2005
Цитата:
Originally posted by Sanila_san
Я же говорил когда-то, что первая половина массива - все чётные, вторая - все нечётные. Там что ТоталКоммандер, что вьюер, что чёрт лысый - всё едино. А выделять половину хоть из 130, хоть из 1000 файлов по любому надо руками. Или самописной программой. А руками 500 файлов выделить ничуть не сложнее, чем 65. LClick -> Shift+LClick. И всё.

Просто у меня нет Total Commander.




короче я еще раз повторю:

for %i in (1,3,5,7,9) do ren *%i.* *%i_.*
Alt + F7
*_.*
Ctrl+T

а выделять вручную 500 даже с помощью LClick etc. -- не оченьто удобно

а тотал надо иметь )))

324
10 февраля 2006 года
AndreySar
532 / / 01.08.2004
Цитата:
Originally posted by LM(AL/M)
короче я еще раз повторю:

for %i in (1,3,5,7,9) do ren *%i.* *%i_.*
Alt + F7
*_.*
Ctrl+T

а выделять вручную 500 даже с помощью LClick etc. -- не оченьто удобно

а тотал надо иметь )))



Чтобы выделить любое кол-во файлов достаточно кликнуть ДВА раза, при этом удерживая клавишу Shift.

1.8K
10 февраля 2006 года
LM(AL/M)
332 / / 20.12.2005
Цитата:
Originally posted by AndreySar
Чтобы выделить любое кол-во файлов достаточно кликнуть ДВА раза, при этом удерживая клавишу Shift.


да только если файлов дофига придется еще и скролить долго и упорно

и еще один момент: хорошо когда то что нужно выделить идет по порядку а если нет ?

324
10 февраля 2006 года
AndreySar
532 / / 01.08.2004
Цитата:
Originally posted by LM(AL/M)
да только если файлов дофига придется еще и скролить долго и упорно

и еще один момент: хорошо когда то что нужно выделить идет по порядку а если нет ?



А тогда интересно как ты в цикле будешь перебирать эти файлы? (1, 10, 11, 45,...)

1.8K
10 февраля 2006 года
LM(AL/M)
332 / / 20.12.2005
Цитата:
Originally posted by AndreySar
А тогда интересно как ты в цикле будешь перебирать эти файлы? (1, 10, 11, 45,...)



если есть закономерность -- тогда элементарно
если нет -- конечно написание скрипта становится не такой элементарной задачей но тем не менее вручную их выделять -- гиблое дело

324
10 февраля 2006 года
AndreySar
532 / / 01.08.2004
Цитата:
Originally posted by LM(AL/M)
если есть закономерность -- тогда элементарно
если нет -- конечно написание скрипта становится не такой элементарной задачей но тем не менее вручную их выделять -- гиблое дело



Вообще то про закономерность было сказано сразу. Зачем изобретать что то одноразовое, если для этого можно использовать стандартные средства

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог