Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#19

Re: XOR Verknüpfung, wie?

  Alt 22. Feb 2006, 08:07
Die Routine von Klaus versagt bei Strings mit einer Länge von weniger als 2 Zeichen:
Delphi-Quellcode:
Function CheckSum (Const aString : String) : String;
Var
  i : Integer;
  
Begin
  If Length (aString)=0 Then
    r := 0
  Else Begin
    r := Ord (aString[1]);
    For i:=2 To Length (aString) Do
      r := r xor Ord (aString[i]);
    End;
  Result := IntToHex (r,2);
End;
Auch wenn der Fall bei Dir vielleicht nicht auftritt, irgendwann willst du die Routine vielleicht nochmal verwenden, und spätestens dann hast Du vergessen, das sie nicht uneingeschränkt funktioniert.

Ich implementiere solche Basisfunktionen immer so, das sie immer zu einem Ergebnis führen. Dann bin ich auf der sicheren Seite und ich habe mindestens einen Fehler weniger

@Klaus01: Übergebe einfach das gesamte Telegram (ab dem <STX>), dann wird doch auch die komplette checksum gebildet.

Bist du Dir Sicher, das Du die Checksumme in Hex brauchst?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat