![]() |
Hex[aus Bytes] To Ascii
Hallo erstmal :-D
Ich belästige euch wohl doch häufig mit Fragen, aber nun muss es nochmal sein, weil ich an der Stelle einfach nicht weiterkomme. Und zwar habe ich einen Byte Wert, den ich zu einem String mache:
Delphi-Quellcode:
Aus diesem String mache ich dann einen Hex Wert wie z.B.:
for i:=0 to Size - 1 do
DataStr := DataStr + Chr(DataBytes[i]); end;
Code:
Ich möchte aber nun aus diesem Hex Wert den ASCII(ich hoffe das ist richtig)-String erstellen, der in diesem Beispiel so aussehen würde:
89 00 00 00 1F 6A 7A 1A 01
Code:
Hat da jeamnd eine Idee, wie man das verwirklicht?
.....jz..
Gruß DarkPressure |
Re: Hex[aus Bytes] To Ascii
chr(StrToInt('$'+DeinHexString));
oder habe ich da etwas falsch verstanden? Grüße Klaus |
Re: Hex[aus Bytes] To Ascii
Es gibt druckbare/anzeigbare Zeichen und nicht anzeigbare Zeichen.
Durch brauchst einfache eine Funktion, die ungefähr so aussieht:
Delphi-Quellcode:
Du wird natürlich nicht anfangen, den Hexstring wieder zurückzuverwandeln, sondern
function VisibleString(const src:string);
var i : integer; begin SetLength(result, Length(src)); for i := 1 to Length(src) do begin case src[i] of #0..#31: // nicht druckbar result[i] := '.'; // das Ersatzzeichen else result[i] := src[i]; end; end; end; nimmst als Parameter src die orginalen Daten. Die absolut beste Lösung ist aber ein Font, der alle Zeichen anzeigen kann. :idea: Es gibt Fonts, die zeigen z.B. das Tabulatorzeichen als "TB" an. Das "TB" sieht aber so aus, dass das T hochgestellt und das B tiefgestellt ist. Sollte es dir gelingen so einen Zeichensatz im Internet zu finden oder du baust ihn selbst, dann wäre ich daran stark interessiert. |
Re: Hex[aus Bytes] To Ascii
Erstmal danke für die schnellen Antworten.
Es gibt aber leider noch ein Problem,
Delphi-Quellcode:
function VisibleString(const src:string): string;
var i : integer; begin SetLength(result, Length(src)); for i := 1 to Length(src) do begin case src[i] of 0..31: // nicht druckbar <<----- [Error] Unit1.pas(122): E2010 Incompatible types: 'Char' and 'Integer' result[i] := '.'; // das Ersatzzeichen else result[i] := src[i]; end; end; end; |
Re: Hex[aus Bytes] To Ascii
Zitat:
|
Re: Hex[aus Bytes] To Ascii
Delphi-Quellcode:
vielleicht so?
function VisibleString(const src:string): string;
var i : integer; begin SetLength(result, Length(src)); for i := 1 to Length(src) do begin case ord(src[i]) of 0..31: result[i] := '.'; // das Ersatzzeichen else result[i] := src[i]; end; end; end; Grüße Klaus |
Re: Hex[aus Bytes] To Ascii
Funktioniert jetz wunderbar, danke euch beiden für euere Bemühung
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:54 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-2025 by Thomas Breitkreuz