Delphi-Quellcode:
function GetCRC32Check(FileName:
String):
String;
function Swap(Value: Cardinal): Cardinal;
asm
BSWAP EAX
end;
var
FS: TFileStream;
CRC: TCRCDef;
begin
FS := TFileStream.Create(FileName, fmOpenRead);
try
CRCSetup(CRC, $EDB88320, 32, $FFFFFFFF, $FFFFFFFF, True/False);
CRCCodeEx(CRC, FS.
Read);
Result := IntToHex(Swap(CRCDone(CRC)), 4);
finally
FS.Free;
end;
end;
1.) das Polynom $EDB88320 ist nicht das CCITT Polynom
2.) im obigen CRCSetup() den True/False Parameter testen
3.) das Swap() eventuell weglassen, ich meine das die Big Endian benutzen
4.) ob das Polynom $EDB88320 richtig ist weis ich allerdings nicht
Gruß Hagen