Batya

|
Posted: Mon Aug 20, 2007 10:54 Post subject: |
|
|
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 ' Работаем пока не найдется имя не занятое файлами), то снова начинаем вычислять значение в скобках. Это не есть хорошо. Раз уж скрипт уже нашел значение номера исходного файла\папки, то надо повышать номер, пока не найдется отсутствующий, а не начить все с начала.
Кстати, нечто подобное, но по-проще (без вычисления номера исходного файла), я уже делал. |
|