Einzelnen Beitrag anzeigen

endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#19

Re: vb function zu delphi konvertieren

  Alt 30. Jun 2004, 13:12
na hoffentlich dauert das nicht zu lange *gg

irgendwo steckt allerdings noch der wurm drin,
die funktion schaut bei mir nun so aus:

Code:
function calccrc(strng: string): integer;
var
  crc, ch, i, j: integer;
begin
  CRC := 0;
  for i := 1 to Length(Strng)-1 do
  begin
    ch := Ord(strng[i]);
//hier hab ich geprüft ob ch und crc die richtigen werte haben
//für ch ist das der fall, crc liefert allerdings andere werte
    for j := 0 to 7 do
    begin
      if ((crc Xor ch) And 1) <> 0 Then
        crc:= (Trunc(crc /2) Xor 40961)
      else
        crc:= Trunc(crc /2);
      ch:= Trunc(crc /2);
    end;
  end;
  result:= crc;
end;
showmessage(intToStr(calccrc('123'))); müßte eigentlich
den wert 17812 liefern, erhalten tu ich aber 47105
meine funktionierende php lösung sah damals so aus:

Code:
   $packetlen = strlen($packet)-1;
   for ($i=$packetlen; $i > 0; $i--) {
      $ch = ord(substr($packet, $h++, 1));
      for($j=0; $j <= 7; $j++) {
         if (($crc ^ $ch) & 1) {
            $crc = ($crc / 2) ^ 40961;
         } else {
            $crc = $crc / 2;
         } 
         $ch = $ch / 2;
      }
   }
   
   return $crc;
allerdings hatte ich auch hier ewig mit der
inneren for schleife gekämpft bis ich letztendlich
den richtigen wert zurückgegeben bekommen habe
  Mit Zitat antworten Zitat