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 

Single Post  Topic: Обмен кнопками 
Author Message
Batya



PostPosted: Mon Aug 20, 2007 10:54    Post subject: Reply with quote

jehaz wrote:
Вот скрипт который можно повесить на кнопку с параметром %L
Копирует выделенные файлы в ту же папку добавляя нумерацию копии в скобках идентично ТС.
Облазил форум, вроде такого не было.

1. А зачем нужно копировать в ту же папку файл-дубликат? Тогда уж лучше задать второй параметр %P или %T по желанию пользователя.
2. Часто для нумерации файлов используются квадратные скобки. Поэтому в теле скрипта лучше не использовать жестко "(" и ")", а задать в шапке скрипта массив, например, Skoba = Array("(", ")") и в коде ссылаться на Skoba(0) и Skoba(1). При желании пользователь сможет поменять Skoba = Array("[", "]") или Skoba = Array("<", ">").
3. Не учтено, что %L может содержать кроме файлов еще и папки. А также, что новое рассчитанное имя файла может быть именем существующей папки.
4. Конструкция
Code:
        CounterLen = Len(FileName)
        Do While CounterLen <> 0

для посимвольного перебора не очень удачна. Тем более, начиная с Len(FileName), а не с Len(FileName) - 1. Лучше использовать InStrRev.
5. Если по Loop until not FSO.FileExists(FileFullName) скрипт возвращается в начало (Do ' Работаем пока не найдется имя не занятое файлами), то снова начинаем вычислять значение в скобках. Это не есть хорошо. Раз уж скрипт уже нашел значение номера исходного файла\папки, то надо повышать номер, пока не найдется отсутствующий, а не начить все с начала.

Кстати, нечто подобное, но по-проще (без вычисления номера исходного файла), я уже делал.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group