![]() |
Unicode-Beschreibung eines Zeichen auslesen
Moin Moin,
es gibt ja zu jedem Unicode Zeichen auch eine Beschreibung, z.B.: Zitat:
Wie komm ich nun an dieses Beschreibung heran? Gibt es dafür etwas in der API? Gruß Malte |
Re: Unicode-Beschreibung eines Zeichen auslesen
1. Der dokumentiert Weg:
lege dir selbst eine Liste an und benutze z.B. ![]() 2. Der undokumentierte Weg: das Programm charmap.exe benutzt getuname.dll (zumindest unter XP), die Funktion lässt sich so unter Delphi nutzen:
Delphi-Quellcode:
(vorsicht: ungetestet)
function GetUName(cCodwW: WideChar; pBufferW: PWideChar): integer;
stdcall; external 'getuname.dll'; function GetUnicodeName(code: WideChar): WideString; begin SetLength(Result, 256); SetLength(Result, GetUName(code, @Result[1])); end; |
Re: Unicode-Beschreibung eines Zeichen auslesen
Hi,
wie so oft ist der undokumentierte Weg doch der einfachere (und auf deutsch hab ichs dann auch noch). Allerdings habe ich nicht so ganz verstanden, wie du WideString und PWideChar vermischt. (Der Compiler hats glaub ich auch nicht verstanden, jedenfalls hat er nur die ersten 5 Buchstaben der Beschreibung geliefert), aber so gehts:
Delphi-Quellcode:
meinen herzlichen Dank für
function GetUnicodeName(code: WideChar): String;
var buffer: PWideChar; begin GetMem(buffer, 255); GetUName(code, buffer); Result := buffer; FreeMem(buffer, sizeof(buffer^)); end; Zitat:
Gruß Malte PS: Hat bei mir auch unter W2k SP4 funktioniert. |
Re: Unicode-Beschreibung eines Zeichen auslesen
Zitat:
Wenn du deinen Code beibehalten möchtest, dann mache aber aus der 255 eine 512 (oder 256 * SizeOf(WideChar)). |
Re: Unicode-Beschreibung eines Zeichen auslesen
Zitat:
Zitat:
|
Re: Unicode-Beschreibung eines Zeichen auslesen
Liste der Anhänge anzeigen (Anzahl: 1)
so, also jetzt nochmal richtig:
Delphi-Quellcode:
Anbei ein Bild von der Anwendung (ist bzw. wird ein Teil von MEdit).
function GetUName(cCodwW: WideChar; pBufferW: PWideChar): integer;
stdcall; external 'getuname.dll'; function GetUnicodeName(code: WideChar): String; var buffer: PWideChar; begin GetMem(buffer, 256 * SizeOf(WideChar)); try GetUName(code, buffer); Result := buffer; finally FreeMem(buffer, sizeof(buffer^)); end; end; Gruß Malte |
Re: Unicode-Beschreibung eines Zeichen auslesen
Zitat:
Zitat:
Mein Vorschlag:
Delphi-Quellcode:
function GetUName(cCodwW: WideChar; pBufferW: PWideChar): integer;
stdcall; external 'getuname.dll'; function GetUnicodeName(code: WideChar): string; var Buffer: PWideChar; begin GetMem(Buffer, 256 * SizeOf(WideChar)); try Buffer^ := #0; GetUName(code, Buffer); Result := Buffer; finally FreeMem(Buffer); end; end; |
Re: Unicode-Beschreibung eines Zeichen auslesen
Zitat:
Gruß Malte |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:13 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