Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

автопереименование группы файлов 36-ричным счётчиком
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
shinji2009



Joined: 06 Feb 2010
Posts: 17

Post (Separately) Posted: Sat Feb 06, 2010 09:43    Post subject: автопереименование группы файлов 36-ричным счётчиком Reply with quote

дано: много файлов, надо переименовать их так, чтобы длина имён файлов была наименьшей.
multi-rename tool можно сделать [Ca] тогда система будет 26-ричной. а как добавить в систему цифры от 0 до 9, чтобы она стала 36-ричной? и ещё какие нибудь симфолы, чтобы увеличить разрядность?
тотал 6.03.
заранее спасибо.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10415
Location: Россия, Саратов

Post (Separately) Posted: Sat Feb 06, 2010 11:46    Post subject: Reply with quote

shinji2009
Не очень понятна сама постановка вопроса, прояснению которого всяческие "26-ричные системы" мало способствуют. Где счётчик, и где наименьшая длина имён файлов? И что такое вообще "наименьшая длина"? В сравнении с чем?
Почему нельзя в счётчике просто увеличить количество цифр (из соответствующего выпадающего списка), чтобы получить двух-, трёх- и сколькиугодно-значную нумерацию? Или, если уж так нужны буквы, задать их несколько (например, [Caa+1])?

Кстати, номер версии TC — не опечатка? Wink Обновлять не пора?
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.


Last edited by Avada on Sat Feb 06, 2010 11:47; edited 1 time in total
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2586
Location: Большая деревня Москва

Post (Separately) Posted: Sat Feb 06, 2010 11:47    Post subject: Reply with quote

Никак. Несколько встречных вопросов:
1. Зачем нужно уменьшить число символов в имени? Вот в этой ветке задавался аналогичный вопрос. Тенденция?
2. Почему такая замшелая версия Тотала? Поверь, в 7.5 куча полезных свойств.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
shinji2009



Joined: 06 Feb 2010
Posts: 17

Post (Separately) Posted: Sat Feb 06, 2010 12:06    Post subject: Reply with quote

Avada
вопрос как раз в том, чтобы не увеличивать количество цифр в счётчике. чтобы было проще, представьте, что надо создать текст, перечисляющий имена файлов так, чтобы этот текст был как можно меньше по объёму. имена файлов не несут никакой информации и роли не играют, но если учесть, что каждый символ имени - это байт текста, то имена должны быть чем короче, тем лучше.

Вахмурка
1) необходимость уменьшения длин имён может быть разной, вопрос не в этом. если люди спрашивают - значит действительно надо, поверьте. лично мне нужно для того, чтобы уменьшить размер торрент-файла. в торрент-файле в текстовом виде перечисляются имена всех файлов, присутствующих в раздаче. файлов 12000 штук. то есть если у каждого файла, например, уменьшить имя на 1 символ, торрент-файл будет весить на 12000 байт меньше. десятичная система в этом случае даёт максимальную длину файла в 5 символов, 26-ричная - 3 символа. размер торрент-файла при этом уменьшается почти на треть. и не надо советовать упаковать файлы раздачи в архив или что-нибудь вроде этого. как я уже сказал, причины могут быть разными, вопрос не в них.

2) я верю, что в 7.5 куча полезных свойств, но у меня на этот счёт своя философия - пока меня устраивает текущая версия, другая мне не нужна. если мне становится доподлинно известно, что в новой версии есть то, без чего я не могу обойтись - я перехожу на неё. или если меня в корне не устраивает текущая версия. пока мой тотал со всем, что мне надо, справляется.
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2586
Location: Большая деревня Москва

Post (Separately) Posted: Sat Feb 06, 2010 12:25    Post subject: Reply with quote

1) Ясно. Придется либо пользоваться скриптом, либо искать в сети альтернативную переименовалку. Их много, я их не смотрел, потому что меня устраивал инструмент Тотала.
2) Здравый подход. Именно поэтому я и сижу под 2000 - я не вижу никаких преимуществ перед ней у XP или Vist'ы. Да и на 2000 с NT перешел только после того, как появилась нужная мне программа, котрая под NT просто не шла. Но в данном случае я бы посоветовал тебе еще раз почитать историю изменений в Тотале. К breadcrumb'у, например, очень быстро привыкаешь и не понимаешь, как раньше жил без него.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
shinji2009



Joined: 06 Feb 2010
Posts: 17

Post (Separately) Posted: Sat Feb 06, 2010 13:41    Post subject: Reply with quote

имхо, тянет на недоработку. как бы... рограмма говорит "А", но не говорит "Б". если прогамма умеет переименовывать по цифровому счётчику и буквенному счётчику, то почему бы не научить её цифро-буквенному? и цифро-букво-символьному тоже.

была бы моя воля - сидел бы в win98 до сих пор =)
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10415
Location: Россия, Саратов

Post (Separately) Posted: Sat Feb 06, 2010 13:59    Post subject: Reply with quote

shinji2009
Это не недоработка, а разумный минимализм, до сего момента в TC вроде бы всех устраивавший. Задача, как ни крути, поставлена очень специфическая. А нет осознанной автором TC потребности — нет реализации. Да и по самой реализации возникли бы дополнительные проблемы. Например, как указать, что за чем должно следовать: когда цифры за буквами, когда буквы за цифрами, что там в этом случае будет дальше, когда односимвольные варианты кончатся... Не говоря уж про какие-то там ещё дополнительные символы.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
shinji2009



Joined: 06 Feb 2010
Posts: 17

Post (Separately) Posted: Sat Feb 06, 2010 14:16    Post subject: Reply with quote

можете называть это и минимализмом =) а с реализацией лично у меня никаких проблем бы не возникло - я просто сделал бы одну кнопочку, где можно было бы указывать разрядность счётчика по умолчанию. там бы указывалось и старшинство символов, и вообще, какие символы использовать. можно было бы переименовывать и по двоичной, и по шестнадцатиричной, и по любой другой из головы выдуманной системе.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10415
Location: Россия, Саратов

Post (Separately) Posted: Sat Feb 06, 2010 16:28    Post subject: Reply with quote

shinji2009
Угу. Только вот разработчик, видимо, пока не в курсе, что такая функциональность кому-то нужна и что решить её одной кнопочкой — раз плюнуть. Wink
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6192
Location: Москва

Post (Separately) Posted: Mon Feb 08, 2010 01:11    Post subject: Reply with quote

shinji2009
Простейший подсчёт показывает, что для 12000 файлов в случае 26-ричной системы будет максимум 26 односимвольных и 676 двухсимвольных имён, остальные 11 298 — трёхсимвольные (итого 35 272 байта); в случае 36-ричной — 36 односимвольных, 1296 двухсимвольных, 10 668 трёхсимвольных (итого 34 632 байта). Разница — 640 байт. И стоит из-за этого огород городить?

Если очень хочется, можно поковыряться с плагином script_wdx, который позволяет создавать собственные поля данных с произвольным содержимым, после чего использовать эти поля в том числе и в групповом переименовании.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
shinji2009



Joined: 06 Feb 2010
Posts: 17

Post (Separately) Posted: Mon Feb 08, 2010 05:19    Post subject: Reply with quote

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

CaptainFlint
Quote:
И стоит из-за этого огород городить?

что оправдать целесообразность строительства, я могу придумать сказку о том, что файл у меня получился 255356 байт, а на трекер можно закачать файл не больше 255000 байт. то есть вот эти вот самые 640 байт сыграют огромную роль =)

ну задался я таким вопросом, вот и спросил =) для того и форум =)
а плагины ковырять я всё-такие не умею :(
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6192
Location: Москва

Post (Separately) Posted: Mon Feb 08, 2010 19:47    Post subject: Reply with quote

shinji2009 wrote:
что оправдать целесообразность строительства, я могу придумать сказку о том, что файл у меня получился 255356 байт, а на трекер можно закачать файл не больше 255000 байт. то есть вот эти вот самые 640 байт сыграют огромную роль =)

А завтра понадобится добавить к торренту ещё несколько файлов, и уже со всеми мыслимыми сжатиями в ограничение не уложишься. В таких случаях надо пытаться искать более общие пути решения проблемы, а не втискивать последние биты и байты, выворачиваясь наизнанку. Я понимаю, что теоретически ситуации могут быть разные, но пока что приведённые примеры выглядят неубедительными. Ну да Бог с ними, вопрос был задан, ответ был получен.

shinji2009 wrote:
а плагины ковырять я всё-такие не умею Sad

А плагины ковырять и не надо. Надо ковырять скрипты, которые плагин использует для отображения полей данных. В частности, почитать ридми к этому плагину, посмотреть примеры скриптов, идущих в комплекте. На худой конец можно и помощи у участников попросить (наверное, это будет лучше сделать в соответствующей ветке).
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
shinji2009



Joined: 06 Feb 2010
Posts: 17

Post (Separately) Posted: Mon Feb 08, 2010 20:05    Post subject: Reply with quote

да да, спасибо всем за ответы =) реально. я обязательно попрошу помощи в будущем ещё, если понадобится. ещё раз спасибо!
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Tue Feb 09, 2010 01:21    Post subject: Reply with quote

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
View user's profile Send private message
shinji2009



Joined: 06 Feb 2010
Posts: 17

Post (Separately) Posted: Thu Feb 11, 2010 18:39    Post subject: Reply with quote

мне повезло с первого раза найти программу, которая делает что мне надо.
http://rename.lupasfreeware.org/zips/setupEN.exe
Lupas Rename 2000
очень понятна и проста в применении.
добавил кроме цифр и букв ещё все знаки препинания, возможные для имён файлов. получилось автопереименование 57-ричным счётчиком =)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
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