Delphi-Help

Главная Статьи Файлы Как вычислить CRC (контрольную сумму) для файла?

Как вычислить CRC (контрольную сумму) для файла?

Оцените материал
(0 голосов)


Как вычислить CRC (контрольную сумму) для файла?

function GetCheckSum(FileName: string): DWORD;  
var
  F: file of DWORD;  
  P: Pointer;  
  Fsize: DWORD;  
  Buffer: array[0..500] of DWORD;
begin
   FileMode := 0;
   AssignFile( F, FileName );
   Reset( F );
   Seek( F, FileSize( F ) div 2 );
   Fsize := FileSize( F ) - 1 - FilePos( F );
   if Fsize > 500 then Fsize := 500;
   BlockRead( F, Buffer, Fsize );
   Close( F );
   P := @Buffer;
   asm
      xor eax, eax
      xor ecx, ecx
      mov edi , p
      @again:
      add eax, [edi + 4*ecx]
      inc ecx
      cmp ecx, fsize
      jl @again
      mov @result, eax
   end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
   ShowMessage( IntToStr( GetCheckSum( 'c:\SetupDemoDB.exe' ) ) );
end;
Прочитано 6398 раз

Авторизация



Счетчики