Hmm..
Hab auch noch ein bischen probiert:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
S: AnsiString;
B: WideString;
i : integer;
begin
// LowerCase, da HexToBin nur mit Kleinbuchstaben arbeitet
S := LowerCase(Edit1.Text);
// WideString
SetLength(B, (Length(S) div 4)); // 4 HexChars = 1 WideChar
// Cast nach PChar, da D6 hier PChar erwartet!
HexToBin(PChar(S), PChar(B), Length(S) div 2);
// EndianSwap
// for i := High(B) downto Low(B) do // High/Low Geht unter D6 nicht mit WideString!!
for i := Length(B) downto 1 do
Word(B[i]) := Swap(Word(B[i]));
Edit2.Text := B;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
S: AnsiString;
B: Array of WideChar;
i : integer;
begin
// LowerCase, da HexToBin nur mit Kleinbuchstaben arbeitet
S := LowerCase(Edit1.Text);
// Bei Array ein Zeichen mehr wg PWideChar
SetLength(B, (Length(S) div 4) + 1); // 4 HexChars = 1 WideChar
// Cast nach PChar, da D6 hier PChar erwartet!
HexToBin(PChar(S), PChar(B), Length(S) div 2);
// EndianSwap
for i := High(B) downto Low(B) do
Word(B[i]) := Swap(Word(B[i]));
Edit2.Text := PWideChar(B);
end;
Eine Version mit WideString und eine mit einem Array WideChar.
Wie ist HexToBin eigendlich unter
Unicode-Versionen von Delphi aufgebaut?