![]() |
Nochmals HexToString und StringToHEx
Habe gestern von jemanden unten stehnde Funktionen bekommen.
Sie laufen auch soweit. Das Problem ist nur, ich bräuchte die Funktion in einem anderen HEX-Format. Die Ausgabe müsste in reinen Zahlenwerte sein und nicht auch in Buchstaben. Kann mir jemand sagen, ob ich die beiden Funktionen entsprechend noch umschreiben kann? Gruß -fapsons-- function StringToHexStr(const s : string):string; begin if s = '' then Result := '' else begin SetLength(Result, Length(s)*2); BinToHex(PChar(s), PChar(Result), Length(s)); end; end; 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; |
Re: Nochmals HexToString und StringToHEx
Also Hex ist halt nun mal mit Zahlen und Buchstaben von A-F! Kannst mal ein Beispiel geben, ich blick eigentlich nicht was Du meinst
|
Re: Nochmals HexToString und StringToHEx
Delphi-Quellcode:
Das sollte dir vllt. helfen.
{**************************************************************************
* NAME: StringToHexStr * DESC: Konvertiert einen String in eine hexadezimale Darstellung *************************************************************************} function StringToHexStr(const value:string):string; begin SetLength(Result, Length(value)*2); // es wird doppelter Platz benötigt if Length(value) > 0 then BinToHex(PChar(value), PChar(Result), Length(value)); end; {************************************************************************** * NAME: HexStrToString * DESC: Dekodiert einen hexadezimalen String *************************************************************************} function HexStrToString(const value:string):string; begin SetLength(Result, Length(value) div 2); // es wird halber Platz benötigt if Length(value) > 0 then HexToBin(PChar(value), PChar(Result), Length(value)); end; Ach du möchtest nur die Dezimalen des HEX...dann nimm Ord(Char)... |
Re: Nochmals HexToString und StringToHEx
Ach du möchtest nur die Dezimalen des HEX...dann nimm Ord(Char)...
Ja, genau das brauche ich. Lässt sich das denn auch wieder umkehren? |
Re: Nochmals HexToString und StringToHEx
Habe jetzt unten aufgeführte Funktion. Die führt auch zum gewünschten Ergebnis.
Lässt sich dieses auch wieder umkehren...;)? function StringToHex(s:string) : string; var i : integer; begin result := ''; for i := 1 to length(s) do begin if i = length(s) then result := result + intToStr(ord(s[i])) else result := result + IntToStr(ord(s[i])) + ''; end; end; |
Re: Nochmals HexToString und StringToHEx
@fapsons, schliesse deinen Code mal bitte in Delphitags ein, dann kann man das auch besser lesen.
[delphi] procedure Foo(); var a, b, c: Byte; begin //... end; [/delphi] wird dann zu:
Delphi-Quellcode:
procedure Foo();
var a, b, c: Byte; begin //... end; |
Re: Nochmals HexToString und StringToHEx
Delphi-Quellcode:
CHR soll ja die Umkehrfunktion sein. Komme damit aber trotzdem nicht zurecht...
function StringToHex(s:string) : string;
var i : integer; begin result := ''; for i := 1 to length(s) do begin if i = length(s) then result := result + intToStr(ord(s[i])) else result := result + IntToStr(ord(s[i])) + ''; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 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