Einzelnen Beitrag anzeigen

Benutzerbild von GPRSNerd
GPRSNerd

Registriert seit: 30. Dez 2004
Ort: Ruhrpott
239 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Checksumme in einem Übertragungsprotokoll bilden (LSB)

  Alt 16. Feb 2009, 10:09
@Memo:

Sorry, aber der Algorithmus hat zwei Fehler:

1. Die for-Schleife muss bis Length(s) laufen
2. Was soll das ShiftRechts? Damit entsorgst du die 8 LSBs.

Delphi-Quellcode:
function CheckData(s: string): string;
var
  i: integer;
  SumAscii: integer;
  L: integer;
begin
    SumAscii := 0;
    for i := 1 to Length(s) do
      SumAscii := SumAscii + Ord(s[i]);
    //ShowMessage(IntToHex(SumAscii,8));
    L := SumAscii and $FF;
    Result := IntToHex(L,1);
end;

procedure TForm2.btn1Click(Sender: TObject);
begin
  ShowMessage(CheckData('01/00044/O/01/01720123445/2323//3/54657374/'));
end;
Mit diesem Code kommt auch wieder $883 und als Checkusmme $83 raus.
Stefan
  Mit Zitat antworten Zitat