Ja ich habe die Klammerungen getestet, es hat sich aber nichts geändert.
Delphi-Quellcode:
var
i, lCRC32, iBit : dword ;
Crc32Table : array[0..255] of dword ;
txt : string;
begin
For i := 0 To 255 do //$B40BBE37
begin
lCRC32 := i;
For iBit := 0 To 7 do
begin
If (lCRC32 And $1) <> 0 Then
lCRC32 := ((lCRC32 div $2) And $7FFFFFFF) Xor $EDB88320
Else
lCRC32 := (lCRC32 div $2) And $7FFFFFFF;
end;
Crc32Table[i] := lCRC32;
end;
lCRC32 := $FFFFFFFF;
For i := 1 To length(Data) do
begin
lCRC32 := ((lCRC32 shr 8) And $FFFFFF) Xor
Crc32Table[(lCRC32 and $FF) xor Ord(Data[i])];
end;
result := Hex(lCRC32 Xor $FFFFFFFF,8);
end;
Wenn ich allerdings diese Deklaration ändere
i, lCRC32, iBit : dword ;
von dword in integer kommt was anderes raus. Aber auch nicht das was VBA macht.