Страница 27 из 52

Добавлено: Пт мар 06, 2015 22:16
Flasher
SVM
ОК, исправил.

Добавлено: Пт мар 06, 2015 23:21
SVM
Flasher
Старая ошибка не выскакивает, но русские имена файлов переименовываются в "ЛУЧШР", а если есть умляуты, появляется переименовый файл нулевого размера, но уже без умляута.

Добавлено: Пт мар 06, 2015 23:33
Flasher
SVM
Да, про этот нюанс знаю, это касается md5 с юникодными именами, сохранённых ТС в UTF-8 (если бы он сохранял в UTF-16, проблем бы не было).
На тот момент лень было допиливать, если честно. Изображение

С умляутами вопрос решается, а вот с другим Юникодом придётся пробовать HashCryptStreams (204 Кб) или Capicom (500 Кб + sha512). XMD5 не тянет. На чём остановимся?

Добавлено: Сб мар 07, 2015 13:59
SVM
Flasher писал(а):HashCryptStreams или Capicom. На чём остановимся?
На ваше усмотрение.

Добавлено: Вс мар 08, 2015 11:17
Flasher
SVM
Capicom отпал, не портируется, ещё пару вариантов пробовал, там с именами та же петрушка, либо - Demo. Остановился на HashCryptStreams. Скрипт там же. Ссылку обновил.

Добавлено: Вс мар 08, 2015 15:18
SVM
Flasher
В параметрах прописал md5, путь в шапке изменил, выскакивает ошибка:

Строка: 18
Символ: 38
Ошибка: Недопустимый вызов или аргумент процедуры
Код: 800A0005

Добавлено: Вс мар 08, 2015 17:45
Flasher
SVM
Путь \ на конце имеет?

Добавлено: Вс мар 08, 2015 18:29
SVM
Flasher
Да. Как и в шапке.

Добавлено: Вс мар 08, 2015 19:07
Flasher
SVM
Просто 18 строка не менялась со старого варианта. Там всё то же самое (кроме 1 символа). Не могу даже представить, в чём проблема.
Всё же хотел бы взглянуть на 10 строку.

Добавлено: Вс мар 08, 2015 23:41
SVM
Flasher
HPath = "%COMMANDER_PATH%\Plugins\utils\ScriptHelper\Components\HashCryptStreams\"
Было XPath, исправил на HPath
Total Commander, если имена на русском, создаёт md5 в ansi, при переименовании ошибка:

Строка: 35
Символ: 38
Ошибка: Индекс выходит за пределы допустимого диапазона: '[number: 1]'
Код: 800A0009

Создал в RapidCRC md5 UTF-8, если зайти в папку, то переименовывает, а если с подпапками то ошибка:

Строка: 33
Символ: 7
Ошибка: Операция не допускается в данном контексте.
Код: 800A0C93
Источник: ADODB.Stream

Добавлено: Вс мар 08, 2015 23:53
Flasher
SVM писал(а):Было XPath, исправил на HPath
Остальной код тоже по частям вставлялся? :)
SVM писал(а):Total Commander, если имена на русском, создаёт md5 в ansi
Я в курсе, но это не проблема для скрипта.
SVM писал(а):Создал в RapidCRC md5 UTF-8, если зайти в папку, то переименовывает, а если с подпапками то ошибка
Ну, rapidcrc и другие утилиты нет смысла трогать. Я только под ТС подгонял. Невозможно учесть все потенциальные детали построения текста в сторонних CRC. В некоторых прогах типа Md5Checker предлагается несколько разделителей. Можно по идее искать 10 запрещённых символов и тримить, но, мне кажется, оно того не стоит. В той же HashMyFiles весьма изощрённые способы сохранения данных.
И я бы лучше rhash использовал. Под неё всегда можно кнопку состряпать или батник.

С RapidCRC проблем нет в плане построения списков. Там как и в ТС.
Ага, нашёл какую-то бяку. Буду думать.

И вопрос по поводу 0-байтовых файлов. Насколько принципиально их переименовывать? Компоненты с такими не дружат просто. В принципе, я себе в код добавил константы, но избавится от лишнего кода - не проблема.

Добавлено: Пн мар 09, 2015 11:36
SVM
Flasher писал(а):Остальной код тоже по частям вставлялся? :)
Нет, только эта строчка.
Flasher писал(а):И вопрос по поводу 0-байтовых файлов. Насколько принципиально их переименовывать?
Не принципиально.

Добавлено: Пн мар 09, 2015 13:27
Flasher
SVM писал(а):Не принципиально.
Так убирать или нет?
По части найденной проблемы. Там оказалась существенная мелочь, связанная с переопределением типа чтения потока. Вчера ещё думал об этом, не даже не удосужился проверить. Но утро вечера мудренее, как говорится. :wink:
В документации даже сноска есть:
The default is text. However, when binary data is written to a new, empty Stream object, the Type will be implicitly set to binary.

Добавлено: Пн мар 09, 2015 14:29
SVM
Flasher писал(а):Так убирать или нет?
Убирайте.

Добавлено: Пн мар 09, 2015 22:14
Flasher
SVM
Там ещё всплыли проблемы. Не мог понять, почему указатель для побайтового чтения не возвращается в начало. Разобрался. Скрипт исправлен.
Кстати, а почему не сделать аналог с фильтром и созданием Info.<CRC>?
Это ж лучше, чем по папкам лазить, выделять и вызывать диалог создания сумм.