![]() |
AW: CRC16 Problem mit Input ASCII/Hex
Zitat:
Irgendjemand hat hier vor einiger Zeit geschrieben "Vergewaltigung eines Strings", recht hat er! Gruß K-H |
AW: CRC16 Problem mit Input ASCII/Hex
Zitat:
Initialisiert wird extern mit CRC16:=$FFFF. |
AW: CRC16 Problem mit Input ASCII/Hex
Zitat:
Zitat:
Jetzt habe ich aber z.B. durch vorhergehende Schritte z.B. einen String Zitat:
Zitat:
Ja, ich weiß es ist eine String-Vergewaltigung, aber es erscheint zur Zeit für mich die sinnvollste Lösung für mein Problem... |
AW: CRC16 Problem mit Input ASCII/Hex
Ich habe mal die String-Nach-CRC16 überarbeitet aber bekomme dennoch andere Ergebnisse.
Delphi-Quellcode:
für String "020D000A413068656C6C6F" erhalte ich "A881" und als Hex-Kette kommt "199A" raus.
procedure TForm1.Button2Click(Sender: TObject);
var s: String; buff: packed array of byte; i: Integer; begin case RadioGroup1.ItemIndex of 0: begin // Input ist String s := LabeledEdit1.Text; SetLength(buff, Length(s)); for i := 0 to (Length(s))-1 do buff[i] := Byte(Ord(s[i+1])); LabeledEdit2.Text := (IntToHex(CalcCRC16(buff), 4)); end; 1: begin // Input ist Hex-Kette als String (Beispiel 020D000A413068656C6C6F) s := LabeledEdit1.Text; SetLength(buff, Length(s) div 2); for i := 0 to (Length(s) div 2)-1 do buff[i] := Byte(StrToInt('$'+s[i*2+1]+s[i*2+2])); LabeledEdit2.Text := (IntToHex(CalcCRC16(buff), 4)); end; end; end; Bestimmt mach ich irgendwo noch mehr falsch. :-( [Edit] Ob Hex-Kette überhaupt funktioniert hab ich so getestet In meine String-Eingabe entweder Wert "1" oder "31", als String oder als Hex, beides resultiert in "947E" [/Edit] |
AW: CRC16 Problem mit Input ASCII/Hex
Zitat:
|
AW: CRC16 Problem mit Input ASCII/Hex
Dafür ist doch das "Case" gedacht, entweder Zeichenweise oder Paarweise als Hex-Wert.
|
AW: CRC16 Problem mit Input ASCII/Hex
Hast du den korrekten Start?
Zitat:
Zitat:
|
AW: CRC16 Problem mit Input ASCII/Hex
Ich hatte mich da an das gepostete Beispiel für "So und nicht anders" gehalten, da stand's halt mit $FFFF definiert und ja Du hast recht, so bekomme ich in beiden Cases das korrekte Ergebniss, freut mich das nun alles klappt.
Das mit der Datei ist ja egal, war nur so ein Nebendingens. |
AW: CRC16 Problem mit Input ASCII/Hex
Auf jeden Fall, vielen Dank an alle, die versucht haben zu helfen.
Wer weiß, wie lange ich da sonst noch daran gehängt hätte. :-) |
AW: CRC16 Problem mit Input ASCII/Hex
Ich sollte noch anmerken, der Code enthält keine Fehlerbehandlung, also auf Input-Korrektheit sollte entweder im Vorfeld oder in meinem Beispiel Code ergänzt werden, Ansätze hätte man ja, Code kann auch noch gekürzt werden, momentan alles ausführlich zum Testen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz