hashcrc, FarMD5, MD5Arc

Здесь можно обсудить ваш любимый плагин.
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Post by t-rex »

Latest post of the previous page:

Docent1
Могу помочь с языками по ICQ.
Docent1
Posts: 561
Joined: Thu 31 Mar, 2005 23:13
Been thanked: 1 time

Post by Docent1 »

Wolfgang Ehrhardt
In your module hash.pas - error:
procedure HashFile(..)
..
while (Err=0) and not eof(f) do begin
system.blockread(f,buf,bsize,L);
Err := IOResult;
HUpdateXL(Context, @buf, L);
end;
..
i.e. check eof(f) - symbol (->). When this symbol exist - calculation
of sum (MD5 & other) is stoped. Final sum is not rights.
Must be:

while (Err=0) and (L > 0) do begin
system.blockread(f,buf,bsize,L);
Err := IOResult;
HUpdateXL(Context, @buf, L);
end;
That's Ok.
Docent1
User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Post by Centaur »

А точно для нетипизированного файла, Eof проверяет на ^Z?

Вот, например, из Delphi 7 Runtime Library:

Code: Select all

function _EofFile(var f: TFileRec): Boolean;
begin
  Result := _FilePos(f) >= _FileSize(f);
end;
Поскольку _FilePos и _FileSize возвращают Longint, то «особенности» будут сразу, как только размер больше 2G.

Собственно, если новая версия работает правильно, то надо не указывать на ошибку в старой, а просить выложить новые исходники.
Docent1
Posts: 561
Joined: Thu 31 Mar, 2005 23:13
Been thanked: 1 time

Post by Docent1 »

Centaur
На ^Z проверяются обычно текстовые файлы, а то что он делает -
это
AssignFile(FromF, FileName);
Reset(FromF, 1);
while (NumRead > 0) do
begin
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
...
end;
CloseFile(FromF);
(я не знаю, как это открытие файлов называется но оно аналогично CreateFile(Name,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN,NULL);

эти файлы проверяются, пока буфер не будет нулевым. А он почему-то проверял на ^Z. Для маленьких файлов это сходило, потому что вероятность попадания на ^Z в начале буфера мала. А для больших соответственно вероятность растет. Я исправил -проверил -работает на всех файлах.
------------------------
а, ну да - ты прав!
Docent1
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Post by t-rex »

Docent1
Ну если я понял что ты там написал, то и он поймёт :) А вообще Кентавр прав.
User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Post by Centaur »

А он почему-то проверял на ^Z. Для маленьких файлов это сходило, потому что вероятность попадания на ^Z в начале буфера мала.
Да покажи, где он проверял на ^Z! Я про то и пишу, что не на ^Z, а на pos >= size. То есть патч проблему решает, но не по той причине, которую предполагал его автор.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Re: hashcrc, FarMD5, MD5Arc

Post by ccaid »

обнаружил особенность использования MD5Arc.
если проге не хватает прав создать рядом с собой ini-файл, то она молча не работает — завершается, не вычислив md5, и без сообщений об ошибке (в том числе errorlevel = 0). такая ситуация может возникнуть, в частности, под Win7 с UAC, если прога лежит в папке с ограниченными правами.
копирование к проге готового ini-файла вроде бы исправляет ситуацию.

UPD.
выше речь шла о папке, созданной самим юзером, например, в корне диска. если прога лежит в папке WINDOWS, то работает механизм virtualstore, и проблемы с созданием ini-файла не возникает.
Фар делают добрые люди
SamaelRanger
Posts: 2
Joined: Fri 13 May, 2011 16:30

Портирование очень востребованного плагина CRC/Hash в x64

Post by SamaelRanger »

А может кто-нибудь портировать плагин для расчета CRC/Hash (и прочих алгоритмов) http://home.netsurf.de/wolfgang.ehrhard ... sh_en.html для Far 2 x64?

Плагин написан на паскале. :(

Спасибо!
Игорь Юдинцев
Posts: 726
Joined: Sun 03 Apr, 2005 22:00
Location: Казань
Been thanked: 2 times

Re: Портирование очень востребованного плагина CRC/Hash в x6

Post by Игорь Юдинцев »

NTFS File Information умеет CRC32, MD5, SHA192/256.
SamaelRanger
Posts: 2
Joined: Fri 13 May, 2011 16:30

Re: Портирование очень востребованного плагина CRC/Hash в x6

Post by SamaelRanger »

Игорь Юдинцев О, благодарю!!
Post Reply

Return to “Обсуждение плагинов”