Es muß doch eine IndexOfChar geben, um den aktuellen Windows Zeichensatz auszulesen, die (wesentlich) schneller als das ist?
Delphi-Quellcode:
TWideChar =
packed record
case Byte
of
0: (Value: WideChar);
1: (Code: Word);
end;
function GetWideChr(
const Code: word): WideChar;
var
WChar: TWideChar;
begin
WChar.Code := Code;
Result := WChar.Value;
end;
function GetWideOrd(
const Value: WideChar): integer;
var
I: integer;
WChar: TWideChar;
begin
Result := -1;
for I := 0
to 65535
do
begin
WChar.Code := I;
if WChar.Value = Value
then
begin
Result := I;
Break;
end;
end;
end;
procedure TDoubleDiceEncryptionForm.Button1Click(Sender: TObject);
var
WChar: TWideChar;
begin
WChar.Code := 7888;
MessageBoxW(
Handle, PWideChar
(WideFormat('
%s = Code %d', [GetWideChr(WChar.Code), GetWideOrd(WChar.Value)])),
'
Test', MB_ICONINFORMATION);
end;