Hi,
ich bin dabei in verschiedenen Texten Worte zu separieren, Worte bestehen ja aus Buchstaben
. Das ganze soll multilingual werden. Nun zu meiner Frage: Kennt jemand eine Möglichkeit auch WideChar (Char unter Net) auch in Mengen zu benutzen, so dass man dann auch die Form der Abfrage folgend nutzen könnte:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| Const INVALID_WORD_SEP_SLA = [#65 .. #90, #97 .. #122, #256 .. #383, #48 .. #57, #64, #45 ]; function F_SearchNextBoundary() : Integer; var strMySlaw : String; begin strMySlaw := 'się na dużą' result := 1; while strMySlaw(iPos) in INVALID_WORD_SEP_SLA do begin inc(result); end; end; |
Die oben dargestellte "soll" also die Position des ersten Leerzeichens liefern. Macht sie aber nicht da eine Menge (set of Char) als AnsiChar (ASCII) und nicht als WideChar (UNICODE) interpretiert wird. Der oben dargestellte Allgorithmus würde von links gesehen die Position des Zeichens 'ę' als Grenze ermitteln. Der Blick in die entsprechende UNICODE-Tabelle liefert für das 'ę' folgenden Hex-Wert: H0119. Da das ganze in Mengen auf Ansi zurückgeführt wird nur H19, lt. Ansi Zeichen 25, logischerweise auch ein Worttrenner.
Schlussfolgerung: Wie kann ich WideChar in Mengen nutzen??
Moderiert von Gausi: Code- durch Delphi-Tags ersetzt