Einzelnen Beitrag anzeigen

Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: gibt es Utf16 Äquivalente zu Ord und Chr

  Alt 20. Jan 2015, 14:38
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;
  Mit Zitat antworten Zitat