CRC32生成码表方法实现。。。。。
|
源代码网整理以下 Table:Array[0..255] of DWORD; {$I } CRC32 := not CRC32; end; function GetCrc32Str(s: string; Seed: LongInt):string; var Count: Integer; CrcVal: LongInt; begin CrcVal := Seed; for Count := 1 to Length(s) do CrcVal := Table[Byte(CrcVal xor DWORD(Ord(s[Count])))] xor ((CrcVal shr 8) and $00FFFFFF); Result := IntToHex(not(CrcVal), 8); end; 调用: procedure TForm1.Button1Click(Sender: TObject); begin MakeTable(); Edit1.Text:=GetCrc32Str("11111111",8);//这里取指定字符串的CRC32校验值; end; procedure TForm1.Button2Click(Sender: TObject); var FileStr:String; crc: DWORD; begin MakeTable(); FileStr:=Application.ExeName;//这里取指定的文件的crc32校验值; GetCRC32File(FileStr,crc); if crc<>0 then Edit2.Text:=PChar(IntToHex(crc,6)); end; 源代码网推荐 源代码网供稿. |
