View previous topic :: View next topic |
Author |
Message |
shinji2009
Joined: 06 Feb 2010 Posts: 17
|
(Separately) Posted: Sat Feb 06, 2010 09:43 Post subject: автопереименование группы файлов 36-ричным счётчиком |
|
|
дано: много файлов, надо переименовать их так, чтобы длина имён файлов была наименьшей.
multi-rename tool можно сделать [Ca] тогда система будет 26-ричной. а как добавить в систему цифры от 0 до 9, чтобы она стала 36-ричной? и ещё какие нибудь симфолы, чтобы увеличить разрядность?
тотал 6.03.
заранее спасибо. |
|
Back to top |
|
 |
Avada

Joined: 01 Aug 2008 Posts: 10415 Location: Россия, Саратов
|
(Separately) Posted: Sat Feb 06, 2010 11:46 Post subject: |
|
|
shinji2009
Не очень понятна сама постановка вопроса, прояснению которого всяческие "26-ричные системы" мало способствуют. Где счётчик, и где наименьшая длина имён файлов? И что такое вообще "наименьшая длина"? В сравнении с чем?
Почему нельзя в счётчике просто увеличить количество цифр (из соответствующего выпадающего списка), чтобы получить двух-, трёх- и сколькиугодно-значную нумерацию? Или, если уж так нужны буквы, задать их несколько (например, [Caa+1])?
Кстати, номер версии TC — не опечатка? Обновлять не пора? _________________ Даже самая богатая фантазия
Не представит себе наши безобразия.
Last edited by Avada on Sat Feb 06, 2010 11:47; edited 1 time in total |
|
Back to top |
|
 |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
|
Back to top |
|
 |
shinji2009
Joined: 06 Feb 2010 Posts: 17
|
(Separately) Posted: Sat Feb 06, 2010 12:06 Post subject: |
|
|
Avada
вопрос как раз в том, чтобы не увеличивать количество цифр в счётчике. чтобы было проще, представьте, что надо создать текст, перечисляющий имена файлов так, чтобы этот текст был как можно меньше по объёму. имена файлов не несут никакой информации и роли не играют, но если учесть, что каждый символ имени - это байт текста, то имена должны быть чем короче, тем лучше.
Вахмурка
1) необходимость уменьшения длин имён может быть разной, вопрос не в этом. если люди спрашивают - значит действительно надо, поверьте. лично мне нужно для того, чтобы уменьшить размер торрент-файла. в торрент-файле в текстовом виде перечисляются имена всех файлов, присутствующих в раздаче. файлов 12000 штук. то есть если у каждого файла, например, уменьшить имя на 1 символ, торрент-файл будет весить на 12000 байт меньше. десятичная система в этом случае даёт максимальную длину файла в 5 символов, 26-ричная - 3 символа. размер торрент-файла при этом уменьшается почти на треть. и не надо советовать упаковать файлы раздачи в архив или что-нибудь вроде этого. как я уже сказал, причины могут быть разными, вопрос не в них.
2) я верю, что в 7.5 куча полезных свойств, но у меня на этот счёт своя философия - пока меня устраивает текущая версия, другая мне не нужна. если мне становится доподлинно известно, что в новой версии есть то, без чего я не могу обойтись - я перехожу на неё. или если меня в корне не устраивает текущая версия. пока мой тотал со всем, что мне надо, справляется. |
|
Back to top |
|
 |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
(Separately) Posted: Sat Feb 06, 2010 12:25 Post subject: |
|
|
1) Ясно. Придется либо пользоваться скриптом, либо искать в сети альтернативную переименовалку. Их много, я их не смотрел, потому что меня устраивал инструмент Тотала.
2) Здравый подход. Именно поэтому я и сижу под 2000 - я не вижу никаких преимуществ перед ней у XP или Vist'ы. Да и на 2000 с NT перешел только после того, как появилась нужная мне программа, котрая под NT просто не шла. Но в данном случае я бы посоветовал тебе еще раз почитать историю изменений в Тотале. К breadcrumb'у, например, очень быстро привыкаешь и не понимаешь, как раньше жил без него. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
 |
shinji2009
Joined: 06 Feb 2010 Posts: 17
|
(Separately) Posted: Sat Feb 06, 2010 13:41 Post subject: |
|
|
имхо, тянет на недоработку. как бы... рограмма говорит "А", но не говорит "Б". если прогамма умеет переименовывать по цифровому счётчику и буквенному счётчику, то почему бы не научить её цифро-буквенному? и цифро-букво-символьному тоже.
была бы моя воля - сидел бы в win98 до сих пор =) |
|
Back to top |
|
 |
Avada

Joined: 01 Aug 2008 Posts: 10415 Location: Россия, Саратов
|
(Separately) Posted: Sat Feb 06, 2010 13:59 Post subject: |
|
|
shinji2009
Это не недоработка, а разумный минимализм, до сего момента в TC вроде бы всех устраивавший. Задача, как ни крути, поставлена очень специфическая. А нет осознанной автором TC потребности — нет реализации. Да и по самой реализации возникли бы дополнительные проблемы. Например, как указать, что за чем должно следовать: когда цифры за буквами, когда буквы за цифрами, что там в этом случае будет дальше, когда односимвольные варианты кончатся... Не говоря уж про какие-то там ещё дополнительные символы. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
 |
shinji2009
Joined: 06 Feb 2010 Posts: 17
|
(Separately) Posted: Sat Feb 06, 2010 14:16 Post subject: |
|
|
можете называть это и минимализмом =) а с реализацией лично у меня никаких проблем бы не возникло - я просто сделал бы одну кнопочку, где можно было бы указывать разрядность счётчика по умолчанию. там бы указывалось и старшинство символов, и вообще, какие символы использовать. можно было бы переименовывать и по двоичной, и по шестнадцатиричной, и по любой другой из головы выдуманной системе. |
|
Back to top |
|
 |
Avada

Joined: 01 Aug 2008 Posts: 10415 Location: Россия, Саратов
|
(Separately) Posted: Sat Feb 06, 2010 16:28 Post subject: |
|
|
shinji2009
Угу. Только вот разработчик, видимо, пока не в курсе, что такая функциональность кому-то нужна и что решить её одной кнопочкой — раз плюнуть.  _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6192 Location: Москва
|
(Separately) Posted: Mon Feb 08, 2010 01:11 Post subject: |
|
|
shinji2009
Простейший подсчёт показывает, что для 12000 файлов в случае 26-ричной системы будет максимум 26 односимвольных и 676 двухсимвольных имён, остальные 11 298 — трёхсимвольные (итого 35 272 байта); в случае 36-ричной — 36 односимвольных, 1296 двухсимвольных, 10 668 трёхсимвольных (итого 34 632 байта). Разница — 640 байт. И стоит из-за этого огород городить?
Если очень хочется, можно поковыряться с плагином script_wdx, который позволяет создавать собственные поля данных с произвольным содержимым, после чего использовать эти поля в том числе и в групповом переименовании. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
 |
shinji2009
Joined: 06 Feb 2010 Posts: 17
|
(Separately) Posted: Mon Feb 08, 2010 05:19 Post subject: |
|
|
Avada
разработчики постоянно не в курсе, но когда они это понимают, появляются отличные программы, отличие которых в том, что в них есть возможность использования самописных плагинов, и настраивается в программе как правило абсолютно всё =) что очень радует пользователей, которые постоянно, такие-сякие, пытаются использовать программу не по назначению =)
CaptainFlint
Quote: | И стоит из-за этого огород городить? |
что оправдать целесообразность строительства, я могу придумать сказку о том, что файл у меня получился 255356 байт, а на трекер можно закачать файл не больше 255000 байт. то есть вот эти вот самые 640 байт сыграют огромную роль =)
ну задался я таким вопросом, вот и спросил =) для того и форум =)
а плагины ковырять я всё-такие не умею :( |
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6192 Location: Москва
|
(Separately) Posted: Mon Feb 08, 2010 19:47 Post subject: |
|
|
shinji2009 wrote: | что оправдать целесообразность строительства, я могу придумать сказку о том, что файл у меня получился 255356 байт, а на трекер можно закачать файл не больше 255000 байт. то есть вот эти вот самые 640 байт сыграют огромную роль =) |
А завтра понадобится добавить к торренту ещё несколько файлов, и уже со всеми мыслимыми сжатиями в ограничение не уложишься. В таких случаях надо пытаться искать более общие пути решения проблемы, а не втискивать последние биты и байты, выворачиваясь наизнанку. Я понимаю, что теоретически ситуации могут быть разные, но пока что приведённые примеры выглядят неубедительными. Ну да Бог с ними, вопрос был задан, ответ был получен.
shinji2009 wrote: | а плагины ковырять я всё-такие не умею  |
А плагины ковырять и не надо. Надо ковырять скрипты, которые плагин использует для отображения полей данных. В частности, почитать ридми к этому плагину, посмотреть примеры скриптов, идущих в комплекте. На худой конец можно и помощи у участников попросить (наверное, это будет лучше сделать в соответствующей ветке). _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
 |
shinji2009
Joined: 06 Feb 2010 Posts: 17
|
(Separately) Posted: Mon Feb 08, 2010 20:05 Post subject: |
|
|
да да, спасибо всем за ответы =) реально. я обязательно попрошу помощи в будущем ещё, если понадобится. ещё раз спасибо! |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2224 Location: Москва, Россия
|
(Separately) Posted: Tue Feb 09, 2010 01:21 Post subject: |
|
|
CaptainFlint wrote: | Если очень хочется, можно поковыряться с плагином script_wdx |
Не очень удачный вариант, т. к. счетчик в новых именах нужно наращивать и где-то хранить промежуточные значения.
Сделал vbs-скрипт. Хорошенько погонять его времени нет. Проверь, правильно ли работает.
Code: | '===================================================
' Переименование файлов и папок из файла-списка
' по заданному счетчику
'
' Параметры:
' {файл-список}
'
' Пример параметров при вызове из TC:
' %L
'===================================================
Option Explicit
'======== Изменяемые параметры =====================
' Символы счетчика
Const Counter = "0123456789abcdefghijklmnopqrstuvwxyz"
' Лидирующий символ
Const FirstSymbol = " "
'Const FirstSymbol = "0"
'===================================================
Dim FSO, WSH, Str, List, N, i, F, Rank, K
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
Str = FSO.OpenTextFile(GetPath(WScript.Arguments(0))).ReadAll
List = Split(Str, vbNewLine)
N = UBound(List)
If List(N) = "" Then N = N - 1
Rank = Len(Counter)
K = -Int(-Log(N+1)/Log(Rank))
For i = 1 To N + 1
F = GetPath(List(i - 1))
If FSO.FolderExists(F) Then
FSO.GetFolder(F).Name = Trim(Right(String(K, FirstSymbol) & GetWord(i), K))
End If
If FSO.FileExists(F) Then
FSO.GetFile(F).Name = Trim(Right(String(K, FirstSymbol) & GetWord(i), K)) & "." & FSO.GetExtensionName(F)
End If
Next
Set WSH = Nothing
Set FSO = Nothing
WScript.Quit 0
Function GetPath(pPath)
GetPath = FSO.GetAbsolutePathName(WSH.ExpandEnvironmentStrings(pPath))
End Function
Function GetWord(pNumber)
Dim ln, lm, lRes
ln = Int(pNumber/Rank)
lm = pNumber Mod Rank
lRes = Mid(Counter, lm + 1, 1)
If ln > 0 Then lRes = GetWord(ln) + lRes
GetWord = lRes
End Function |
_________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
 |
shinji2009
Joined: 06 Feb 2010 Posts: 17
|
(Separately) Posted: Thu Feb 11, 2010 18:39 Post subject: |
|
|
мне повезло с первого раза найти программу, которая делает что мне надо.
http://rename.lupasfreeware.org/zips/setupEN.exe
Lupas Rename 2000
очень понятна и проста в применении.
добавил кроме цифр и букв ещё все знаки препинания, возможные для имён файлов. получилось автопереименование 57-ричным счётчиком =) |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|