![]() |
Widestring nach Hex konvertieren
Hallo, gibt es solche fertigen functions, die Widestrings in Hexwerte umwandeln bzw. von Hex nach Widestring konvertieren können. Für Links wäre ich dankbar. Oder klappt das auch mit StrToHex bzw. HexToStr ?
|
Re: Widestring nach Hex konvertieren
Hallo, ich beantworte meine Frage mal selbst:
Das geht so:
Delphi-Quellcode:
function WStrToHex(SourceStr: WideString): WideString;
var hexstr: string; i : integer; begin result := ''; hexstr := ''; for i := 1 to Length(SourceStr) do hexstr := hexstr + IntToHex(Word(SourceStr[i]), 2); Result := hexstr; end; |
Re: Widestring nach Hex konvertieren
Also hexstr brauchst du nicht erst, denn in Delphi kannst du auch gleich mit Result arbeiten. ^^
Außerdem hätte der Copiler bei dir auch schon wegen dem result := ''; meckern sollen :? Dann [i]IntToHex(Word(SourceStr), 2);, da sollte doch wohl 'ne 4 rein, denn ein WideChar hat 2 Bytes und demnach 4 HexChars :zwinker:
Delphi-Quellcode:
function WStrToHex(SourceStr: WideString): WideString;
const HexTable: Array of Char = '0123456789ABCDEF'; var hexstr: string; i : integer; begin result := ''; for i := 1 to Length(SourceStr) do Result := Result + IntToHex(Word(SourceStr[i]), 4); end; Und schneller geht es, wenn du den String nicht jedesmal in seiner Länge veränderst, sondern die Stringlänge am Anfang einmal festlegst und dann nur noch die einzelnen Chars veränderst. z.B. (noch schneller geht es über 'nen PChar)
Delphi-Quellcode:
function WStrToHex(SourceStr: WideString): WideString;
const HexTable: Array of Char = '0123456789ABCDEF'; var i : integer; begin SetLength(result, Length(SourceStr) * 4); for i := 0 to Length(SourceStr) - 1 do begin hexstr[i * 4 + 1] := HexTable[Word(SourceStr[i]) and $0F]; hexstr[i * 4 + 2] := HexTable[(Word(SourceStr[i]) shr 8) and $0F]; hexstr[i * 4 + 3] := HexTable[(Word(SourceStr[i]) shr 16) and $0F]; hexstr[i * 4 + 4] := HexTable[(Word(SourceStr[i]) shr 24)]; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:11 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