IPB

Добро пожаловать, гость ( Вход | Регистрация )

> CheckSum, FAR CRC32/MD5 Plugin
-=CHE@TER=-
Jul 14 2008, 07:25
Сообщение #1


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,355
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



If you wanna job done right - you gonna do it yourself ©

Как я уже говорил, заколебало каждый раз лезть в Total Commander чтобы проверить контрольную сумму. Для FAR плагины были, но они не устраивали, т.к. тоже криво были сделаны.
В конце концов сделали свой плагин, называется CheckSum.
Его достоинства по сравнениию с существующими (ради чего создавался):
1) Возможность создавать как .SFV (CRC32), так и .MD5 (MD5) файлы с контрольными суммами
2) Возможность проверять CRC32 по имени!!! - больше не нужно считать сумму в файл и, затем, смореть его, а потом удалять! Работает только на файлах такого вида:
Some.File.Name[12FACCB4].avi
т.е. маска: *?########?.*
Просто офигенно удобно!
3) Возможность начать проверку просто нажав ENTER на .SFV / .MD5 файле (в некоторых плагинах есть).
4) Возможность сравнить контрольную сумму файла с той, что находится в буфере обмена (появилась с версии 0.21)

Короче, там ещё много всякого - см. checksum.pas.

Файлы на TeamFTP

checksum - собственно плагин и исходники к нему
crc-samples - примеры нормальных .SFV / .MD5
far170dp - кусок из FAR170ManagerDevPack - содержит заголовочные файлы для языков диалекта Pascal, справку по FARAPI на русском и пример HelloWorld.


Для работы поместить .DLL файл в каталог:
C:\Program Files\Far\Plugins\CheckSum\checksum.dll
после чего перезапустить FAR.

ToDo List
CODE

Not implemented yet
~~~~~~~~~~~~~~~~~~~
- Dialogbox with to input filename for checksum file (now this is CheckSum.[sfv/md5])!
  Get file name with .sfv/.md5 extension if one file selected or folder name if there is
  more than one file and, finally, "CheckSum" name when CheckSum performed in the root folder.
- Allow user to manually select files from checksum file in dialog which he want to check
- Progress bar (current %, file X of Y / total % of Y files)
  Progress bar --> http://forum.farmanager.com/viewtopic.php?f=8&t=2622
  Merge CRC32 and MD5 modules
- Statistics (X files OK, Y files fails, Z files not found) with filelist
  For users who don't want to hit ENTER every time on error and just watch overall statistic
- Write help
- Add more checksum algorithms (SHA-1, ED2K, Tiger, etc...) or just create CheckSum plugin (.fmt) routine?..


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
3 Страниц V < 1 2 3 >  
Reply to this topicStart new topic
Ответов(20 - 39)
-=CHE@TER=-
Sep 17 2008, 15:39
Сообщение #21


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,355
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



QUOTE(Капитан Фокин @ Sep 17 2008, 12:29) *
К вопросу об обработке больших файлов - не работает!
Ага - это только у MD5. CRC32 - правильно считает.
Поправим.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Капитан Фокин
Sep 24 2008, 13:34
Сообщение #22


Member
**

Группа: Authorized
Сообщений: 18
Регистрация: 2-September 08
Пользователь №: 11,780
Спасибо сказали: 9 раз(а)



QUOTE(-=CHE@TER=- @ Sep 17 2008, 19:39) *

Ага - это только у MD5. CRC32 - правильно считает.
Поправим.


Неделя прошла - ждем! wink.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Sep 26 2008, 15:09
Сообщение #23


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,355
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



QUOTE(Капитан Фокин @ Sep 24 2008, 13:34) *
Неделя прошла - ждем! wink.gif
Ну, типа, если бы мы ничего не делали кроме этого плагина - замечание было бы справедливо.

Версия 0.24 на сайте - MD5 поправили (остальные изменения - в history.??.txt).
Т.к. поторопили - то выложили неоптимизированную версию MD5 - она работает правильно, но очень медленно по сравнению со старой. Сейчас просто некогда ошибку искать.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Капитан Фокин
Sep 30 2008, 05:07
Сообщение #24


Member
**

Группа: Authorized
Сообщений: 18
Регистрация: 2-September 08
Пользователь №: 11,780
Спасибо сказали: 9 раз(а)



QUOTE(-=CHE@TER=- @ Sep 26 2008, 19:09) *

Т.к. поторопили - то выложили неоптимизированную версию MD5 - она работает правильно, но очень медленно по сравнению со старой. Сейчас просто некогда ошибку искать.


Да, неоптимизированная версия в 3 раза медленнее. Печально...

Кстати, не отрабатываются комментарии в MD5 файлах, созданных другими утилитами. То есть строка вида:
; Generated by MD5plug © Wesha, 2003
воспринимается как ошибка.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Sep 30 2008, 12:12
Сообщение #25


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,355
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



QUOTE(Капитан Фокин @ Sep 30 2008, 05:07) *
Кстати, не отрабатываются комментарии в MD5 файлах, созданных другими утилитами. То есть строка вида:
; Generated by MD5plug © Wesha, 2003
воспринимается как ошибка.
.MD5 файлы не поддерживают комментарии. Так что это - отсебятина. Насчёт других утилит - ни одна мне известная комментарии в .MD5 файлы не пихает.

Если эту строчку генерирует программа на Си - найдите её и поставьте вместо первого символа ноль (символ с ASCII кодом ноль) - тогда она в выходной файл записываться не будет. Если не поможет - забейти её пробелами. Пустые строчки и строчки не содержащие ничего кроме пробелов - игнорируются.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Капитан Фокин
Oct 1 2008, 05:40
Сообщение #26


Member
**

Группа: Authorized
Сообщений: 18
Регистрация: 2-September 08
Пользователь №: 11,780
Спасибо сказали: 9 раз(а)



QUOTE(-=CHE@TER=- @ Sep 30 2008, 16:12) *

.MD5 файлы не поддерживают комментарии. Так что это - отсебятина. Насчёт других утилит - ни одна мне известная комментарии в .MD5 файлы не пихает.


Эту строчку "пихает" известный, видимо, только мне плагин для Far (ссылка см. пост #20). Но если это "отсебятина", тогда, конечно, придется руками править "самостийные" файлы чек-сумм.


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Oct 1 2008, 07:41
Сообщение #27


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,355
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



QUOTE(Капитан Фокин @ Oct 1 2008, 05:40) *
Эту строчку "пихает" известный, видимо, только мне плагин для Far (ссылка см. пост #20). Но если это "отсебятина", тогда, конечно, придется руками править "самостийные" файлы чек-сумм.
Если есть возможность - в файле MD5plug.dll по смещению 0x94BC замените ';' на 0 - тогда строчка не должна появляться (не проверял, но по идее должно работать).
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Капитан Фокин
Oct 1 2008, 13:00
Сообщение #28


Member
**

Группа: Authorized
Сообщений: 18
Регистрация: 2-September 08
Пользователь №: 11,780
Спасибо сказали: 9 раз(а)



QUOTE(-=CHE@TER=- @ Oct 1 2008, 11:41) *

Если есть возможность - в файле MD5plug.dll по смещению 0x94BC замените ';' на 0 - тогда строчка не должна появляться (не проверял, но по идее должно работать).


Ээ... парни, я не это имел ввиду :-) Неужели сложно вставить проверку на комментарии ? Впрочем, все это суета - жду нормальную версию с обработкой >4Gb !!!
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Капитан Фокин
Oct 20 2008, 12:53
Сообщение #29


Member
**

Группа: Authorized
Сообщений: 18
Регистрация: 2-September 08
Пользователь №: 11,780
Спасибо сказали: 9 раз(а)



Проект заброшен ?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Oct 20 2008, 13:15
Сообщение #30


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,355
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



Скорее времени нет - работа и прочие мирские дела. Вместе с летом пора отпусков закончилась и резко навалилось работы, так что руки до чего-то ещё не доходят.
А, что, собственно не так-то?
Насчёт скорости MD5 - это Grom PE обещал посмотреть - как разберётся, где ошибка, так выложим убыстренную версию. Сейчас, видимо, ему не до этого.
Или что ещё требуется-то?

Как бы сразу объясню позицию: проект этот делался для внутреннего использования (как и многое из того, что лежит в CTPAX-X Soft). Мы просто решили поделиться им с общественностью - авось тоже кому-нибудь пригодится.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Капитан Фокин
Oct 21 2008, 11:58
Сообщение #31


Member
**

Группа: Authorized
Сообщений: 18
Регистрация: 2-September 08
Пользователь №: 11,780
Спасибо сказали: 9 раз(а)



QUOTE(-=CHE@TER=- @ Oct 20 2008, 17:15) *

Как бы сразу объясню позицию: проект этот делался для внутреннего использования (как и многое из того, что лежит в CTPAX-X Soft). Мы просто решили поделиться им с общественностью - авось тоже кому-нибудь пригодится.


Разумеется, не могу предъявлять никаких претензий smile.gif Просто... Получалась очень неплохая вещь, осталось нанести буквально последний штрих - и амба!

Собственно: добить скоростную обработку больших файлов и я все же настоял бы на обработке комментариев в чек-суммах MD5 (последнее - чистое ИМХО, но, например, проект http://www.slavasoft.com/fsum/ "балуется" комментированием)


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Nov 3 2008, 18:42
Сообщение #32


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,355
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



Из экстренных вещей, которые надо сделать в новом релизе:
1. Разобраться с MD5-ASM, чтобы он работал без ошибок и заменить им тот, что используется сейчас (правильный, но тормозной).
2. Добавить обработку ";"-комментариев в файлах с контрольными суммами от MD5, для тупых программ, которые их туда пихают в обход стандарта.
3. Добавить флаг FILE_SHARE_READ при открытии файлов. В данный момент наблюдается следующий баг: если файл открыт какой-то программой в режиме чтение+запись, то его содержимое можно просмотреть по F3 в FAR, но CheckSum, при попытке его проверить, говорит что нет доступа.
4. Попробовать ещё немного разогнать CRC32 через FileMapping?..


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Xplorer
Nov 6 2008, 08:03
Сообщение #33


Advanced Member
***

Группа: CTPAX-X
Сообщений: 52
Регистрация: 4-February 08
Пользователь №: 8
Спасибо сказали: 30 раз(а)



-=CHE@TER=-
Выложи последние исходники на FTP. Я догадываюсь в чём проблема при подсчете MD5 для больших файлов.


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Nov 6 2008, 12:14
Сообщение #34


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,355
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



QUOTE(Xplorer @ Nov 6 2008, 08:03) *
-=CHE@TER=-
Выложи последние исходники на FTP. Я догадываюсь в чём проблема при подсчете MD5 для больших файлов.
Спасибо! И правда всё забываю исходные коды выложить...
Выложил - 0.24. Последняя версия MD5-ASM от Grom PE там в корне будет "_MD5.PAS".
В /test/md5_check/ - тестовый стенд с дампами хэшей при подсчёте 4 Гб куска обычного и ASM MD5 алгоритмов.
До 4 Гб оба алгоритма показывают одинаковую итоговую сумму.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Xplorer
Nov 6 2008, 15:38
Сообщение #35


Advanced Member
***

Группа: CTPAX-X
Сообщений: 52
Регистрация: 4-February 08
Пользователь №: 8
Спасибо сказали: 30 раз(а)



Залил на FTP исправленный файл. Изменил MD5Update и MD5Final.
Если будешь использовать File Mapping, то возьми за основу тот вариант, где используется Int64.

P.S. Зачем изобретать колесо (т.е. I64S)? В Windows.pas есть типы LARGE_INTEGER и ULARGE_INTEGER.


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Nov 7 2008, 15:24
Сообщение #36


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,355
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



QUOTE(Xplorer @ Nov 6 2008, 15:38) *
Залил на FTP исправленный файл. Изменил MD5Update и MD5Final.
Спасибо большое!!! В самое ближайшее время прикручу к плугену и пофикшу остальные пункты из todo!


QUOTE(Xplorer @ Nov 6 2008, 15:38) *
Если будешь использовать File Mapping, то возьми за основу тот вариант, где используется Int64.
Понял. Это, видимо, из /test/md5large/md5.pas


QUOTE(Xplorer @ Nov 6 2008, 15:38) *
P.S. Зачем изобретать колесо (т.е. I64S)? В Windows.pas есть типы LARGE_INTEGER и ULARGE_INTEGER.
Спасибо большое - не знал.

P.S. А вообще - это колесо изобретал не я, т.к. у меня изначально маппинга и надобности в этом типе не было. (*улыбается*)


Добавлено:
Версия 0.25 на FTP - всё из экстренного ToDo сделано.
Если ни у кого больше замечаний нет - то выложу релиз на сайт в выходные - вместе с оставшимися программами от jTommy и новым ToWav.


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Капитан Фокин
Nov 11 2008, 06:14
Сообщение #37


Member
**

Группа: Authorized
Сообщений: 18
Регистрация: 2-September 08
Пользователь №: 11,780
Спасибо сказали: 9 раз(а)



QUOTE(-=CHE@TER=- @ Nov 7 2008, 19:24) *

Добавлено:
Версия 0.25 на FTP - всё из экстренного ToDo сделано.


А где, собственно ? blink.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Nov 11 2008, 17:04
Сообщение #38


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,355
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



QUOTE(Капитан Фокин @ Nov 11 2008, 06:14) *
А где, собственно ? blink.gif
Это только для команды.
Версия 0.25 на сайте.
История изменений - где и обычно.
Тестируйте, ждём отчёта.


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Капитан Фокин
Nov 12 2008, 08:28
Сообщение #39


Member
**

Группа: Authorized
Сообщений: 18
Регистрация: 2-September 08
Пользователь №: 11,780
Спасибо сказали: 9 раз(а)



QUOTE(-=CHE@TER=- @ Nov 11 2008, 21:04) *

Версия 0.25 на сайте.
Тестируйте, ждём отчёта.


Обработка больших файлов проходит быстро и корректно, комменты в чек-суммах отрабатываются - спасибо! (как обычно, проверяю только MD5 алгоритм). Надеюсь, старые баги проверять не надо ? biggrin.gif (а новые сами о себе заявят, если что).

Теперь если только "бегущие проценты" добавить, да прерывание по Esc... Кстати, а насколько сложно "перенести" отображение процесса из левого угла в информационное окно в центре ? Поясню - когда обрабатывается туча мелких файлов и процесс идет быстро, то не успеваешь "забыть", что происходит. А когда калькулируются большие файлы, то подчас "не отвечающее" окно FAR-а шокирует (потом только "вспоминаешь", что чек-суммы считаем и смотришь в левый угол smile.gif ). А так - окно в центре, процесс идет, "не надо делать резких движений, господа" biggrin.gif


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Nov 12 2008, 11:14
Сообщение #40


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,355
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



QUOTE(Капитан Фокин @ Nov 12 2008, 08:28) *
Теперь если только "бегущие проценты" добавить, да прерывание по Esc... Кстати, а насколько сложно "перенести" отображение процесса из левого угла в информационное окно в центре ?
Это надо для диалогов AdvControl() запинывать. Она криво объявлена в Pascal-модулях, даже размер структуры с сишным заголовочным файлом не совпадает. Короче, чтобы что-то сделать нужно сначала исправить косяк самого FAR Plugin SDK для Pascal.
А ESC и % сделать не особенно сложно (надо CallBack-процедуру прикрутить).
Но, конечно, для того чтобы что-то сделать нужно свободное время.
Так что "when it's done" ©.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

3 Страниц V < 1 2 3 >
Reply to this topicStart new topic
7 чел. читают эту тему (гостей: 7, скрытых пользователей: 0)
Пользователей: 0 -

 



Упрощённая версия Сейчас: 25th May 2024 - 18:50