Zitat von
DoktorD:
Es funktioniert.
Hai DoktorD,
einen kleinen Tipp habe ich noch. Versuche solche Funktionen ersteinmal allgemein zu halten und dann in einer zweiten Funktion die besonderen Randbedingungen vorzugeben. Dadurch ereichst Du eine höhere Wiederverwendbarkeit deines Codes:
Zum Beispiel:
Delphi-Quellcode:
function CheckSumFromString(const aString: String): Integer; // Allgemeine Checksummenbildung über einen String
var
i: Integer;
r: Integer;
begin
if Length(aString) = 0 then
begin
r := 0;
end
else
begin
r := Ord(aString[1]);
for i := 2 to Length(aString) do
begin
r := r xor Ord(aString[i]);
end;
end;
Result := r;
end;
function CalcMyCheckSum(const aString: String): String; //Mit dem Randbedingungen
const
stx = #2;
praefix = 'OWE 509 ';
begin
Result := IntToHex(CheckSumFromString(stx + praefix + aString), 2);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
blubb: String;
begin
blubb := CalcMyCheckSum('12346579');
ShowMessage(blubb);
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"