![]() |
Hex to String
Hallo,
ich versuche gerade Hexwerte in Strings umzuwandeln. Folgendes habe ich bisher ausprobiert:
Delphi-Quellcode:
Sowas kommt dabei raus:
function HexStringToStr(s : string):string;
begin if s = '' then Result := '' else begin if Odd(length(s)) then s := '0'+s; SetLength(Result, Length(s) div 2); HexToBin(Pchar(s), PChar(Result), Length(Result)); end; end; Procedure TForm1.Button1Click(Sender: TObject) begin HexStringToStr('01010005200B000D600200000100012806050000000205000D6002000101000560'); end; Was mache ich falsch? |
Re: Hex to String
:wiejetzt: Ein Hexwert ist nur eine Darstellungsform einer Zahl. Stellst Du sie $FF dar, ist dies bereits ein String.
|
Re: Hex to String
???
Ich verstehe nicht ganz, ich weiß nicht was das damit zu tun hat. Ich möchte gerne den gesammten string aus Hex werten umwandeln. Normalerweise müsste da ein kommpletter Satz rauskommen. Und ich habe noch herausgefunden, dass wenn man die Hexwerte einzeln umwandelt dann funkioniert es. HexStringToStr('01'); HexStringToStr('01'); HexStringToStr('00'); HexStringToStr('05'); usw.. Aber ich brauche das ja in einem String. |
Re: Hex to String
Und welcher Satz?
|
Re: Hex to String
"010100" wäre #1#1#0, was - in einem Windows-Control ausgegeben - zwei komischen Zeichen entspricht. Offensichtlich stimmt der Algorithmus, aber die Eingaben sind falsch ;)
|
Re: Hex to String
Also ich habe jetzt etwas kleines zusammen gebastelt, aber das funktioniert nicht richtig.
Also wo der Fehler jetzt ist weiß ich, aber wie kann ich das anders machen?
Delphi-Quellcode:
function hexinstring(d : string): string;
var I, s: Integer; t, n, y: string; begin s:=1; for I := 1 to length(d) div 2 do begin n:= copy(d, s, 2); y:=HexStrToString(n); t:=t+y; <--- hier liegt wohl der Fehler s:= I * 2 + 1; end; Result:= t; end; |
Re: Hex to String
Ich denke nicht, dass der Fehler dort liegt. Dax hat vollkommen Recht mit seinem Beitrag zuvor. Dein Hexadezimaler Eingabestring enthält definitiv keine Zeichenkodes. Schau dir mal die Signatur von mir an, da sieht man doch auf Anhieb, dass die Zeichenkodes deutlich grösser sind - das ergibt auch richtige Zeichen.
|
Re: Hex to String
Ok habe es jetzt hibekommen, der Hexwert war auch richtig(ist halt nur nen Beispiel gewesen),
aber wie kann ich die Funktion so umschreiben, dass die auch den HexWert 00 mit umwandelt. Der wird nämlich einfach rausgeschnitten. |
Re: Hex to String
Zitat:
Zitat:
|
Re: Hex to String
Was ist denn nach deiner Auffassung das richtige Ergebnis für den Wert 00? :|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 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