Unicode-Wert im TRichedit ermitteln
-
ich will aus einem TRichEdit jeweils den wert des letzten zeichens einer zeile ermitteln. bei ascii (8bit) gelingt dies ohne probleme:
CharToInt(*TRichEdit->Lines->Strings[x].AnsiLastChar())
nun möchte ich das ganze aber mit chinesischen zeichen wie hiragana etc. machen (in diesem fall also unicode, also 16Bit). diese zeichen bestehen nicht wie erwartet aus 2x8Bit, sondern je nach zeichen auch aus 3x8bit. leider kann ich aus den entsprechenden zahlen den unicode-wert (z.b. 12353) nicht ableiten.
kann mir jemand bei diesem problem weiterhelfen, bin für jeden noch so kleinen hinweis dankbar.
p.s. die chinesichen zeichen habe ich im word geschrieben, als rtf-datei abgespeichert und dann mit dem opendialog geöffnet.
-
Wichtig ist, zu ermitteln, ob du das erste Byte des Zeichen's hast. Schau dir dazu die Funktion AnsiString::ByteType und dazugehörige an.
PS:mit CharLength kannst du ermitteln, wie viele Bytes dein Char hat.[ Dieser Beitrag wurde am 04.07.2003 um 10:59 Uhr von m@loo editiert. ]
-
bei bytetype krieg ich als rückgabe immer mbSingleByte. auch die anderen funktionen von der kategorie "multibyte-zeichen" haben wir nicht weitergeholfen.
die funktion StringToWideChar erzielt leider auch kein sinnvolles resultat (auch hier ist bei 8bit zeichen alles i.o.).
ich habe wohl wieder mal eine zu lange leitung.....kann mir jemand einen weiteren hinweis geben?