@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.