![]() |
String aus Hex konvertieren.
Hallo Zusammen,
sorry ich stehe momentan auf dem Schlauch. Ich habe eine String(12) welcher aus immer zwei Zeichen jeweils eine Hex Zahl repräsentiert. String1 := '00 00 00 05 55 50'; (die Leerzeichen sind eigentlich nicht vorhanden) String2 := chr($00)+chr($00)+chr($00)+chr($05)+chr($55)+chr($ 50); String2 beinhaltet als Ergebnis (#0#0#0#5'UP') den richtigen String. Wie kann ich am besten umsetzen? Gruß Kostas |
AW: String aus Hex konvertieren.
Ich verstehe nicht gar was du meinst. Suchst du evtl. das?
Delphi-Quellcode:
String2 := IntToHex($00, 2)+IntToHex($00, 2)+IntToHex($00, 2)+IntToHex($05, 2)+IntToHex($55, 2)+IntToHex($50, 2);
// |
AW: String aus Hex konvertieren.
Immer 2 Zeichen nehmen, daraus den Byte-Wert bestimmen und an ein Byte-Array oder Stream anhängen.
Dann kannst du daraus holen was du willst |
AW: String aus Hex konvertieren.
Zitat:
Der String1 ändert sich natürlich. Ich müsste also eine Methode haben die aus dem String1 als Beispiel hier '000000055550' den String generiert #0#0#0#5'UP' Immer zwei Zeichen aus dem String ergeben eine Byte. Die zwei Zeichen sind jeweils hex. Die letzten zwei Zeichen sind somit $50 also ein "P" als Char. |
AW: String aus Hex konvertieren.
Zitat:
|
AW: String aus Hex konvertieren.
Delphi-Quellcode:
Da vorne aber Nullen sind und #0 ein Steuerzeichen oder das Ende des Strings bedeutet, wird deine Zeichenfolge nichts anzeigen.
procedure TForm1.Button1Click(Sender: TObject);
function GetChr(s: String; Index: Integer): Char; begin Result := Chr(StrToIntDef('$' + Copy(s, 1 + (Index - 1) * 2, 2), 0)); end; var s, String2: string; i: Integer; begin s := '000000055550'; //anderes Beispiel (ABCDEF): '414243444546'; String2 := ''; for i := 1 to 6 do String2 := String2 + GetChr(s, i); ShowMessage(String2); end; |
AW: String aus Hex konvertieren.
Verflixt noch eins das habe ich gemeint.
Delphi-Quellcode:
function HexToInt(value:string):Char;
begin result := Chr(StrToInt('$' + value)); end; |
AW: String aus Hex konvertieren.
Zitat:
Danke danke, meine Blockade war, wie mache ich aus dem String eine Hex Zahl und habe übersehen dass ich einfach ein $ davorsetzen muss. Der Rest ist klar. Dankeschön |
AW: String aus Hex konvertieren.
-- hat sich erledigt --
Gruß K-H |
AW: String aus Hex konvertieren.
@Popov: String von hinten nach vorne durchgehen, würde das Problem mit den Nullbytes lösen, sofern man beim ersten Nullbyte die Schleife verlässt ;) (und nebenbei die unwichtigen führenden Nullen ignorieren).
@Kostas: Wieso heißt die Funktion HexToInt, wenn ein Char rauskommt? MfG Dalai |
AW: String aus Hex konvertieren.
Zitat:
mit meinem Blödsinn. :-) |
AW: String aus Hex konvertieren.
Zitat:
Gruß K-H |
AW: String aus Hex konvertieren.
Zitat:
Wie gesagt, ich habe nach einer Delphi Möglichkeit wie StrToHex gesucht die es nicht gibt. Warum auch, mir ist schon Klar dass ein HexStr nur ein '$' vorangestellt wird. Aber irgend wie habe ich das ausgeblendet.
Delphi-Quellcode:
Dankeschön und sorry.
function HexToChar(value:string):Char;
begin result := Chr(StrToInt('$' + value)); end; |
AW: String aus Hex konvertieren.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:05 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