james beckmann: foxpro crc32 routine nach php

Beitrag lesen

hallo,

deinen letzten vorschlagt ebenfalls beherzt - mit dem erfolg das die zahlen
zumindet jetzt durchweg im ergebnis positiv sind und die anzahl der stellen
gleich ist. die routine sieht jetzt so aus:

...

$lnCrc32 = -1;

For ($iX=0; $iX<strlen($tcStr); $iX++)
 {
  $lnByte = ord(SubStr($tcStr, $iX, 1));
  $lnZ = $lnByte ^ ($lnCrc32 & 0x000000FF);
  $wert=$CRCTbl[$lnZ];
  if ($wert>0x7fffffff) $wert=$wert-4294967296;
  $lnCrc32 =  $wert ^ (($lnCrc32 >> 8) & 0x00ffffff);
 }

$lnCrc32 = ~$lnCrc32;

if($lnCRC32 < 0) $lnCRC32 = 4294967296 + $lnCRC32;

Return $lnCrc32;

...

dank für deine mühe,
j.b.