marcov hat geschrieben:#o ist legal in Pascal Strings.
Du meinst #0 oder?
Ja.
Wegen der Abbruchbedingung beim PChar? Das braucht den UTF8Enumerator afaik nicht kümmern.
One of the really nice features of UTF-8 is that it is compatible with nul-terminated strings. No character will have a nul (0) byte when encoded.
Das ist etwas anders. Das heißt wenn man eine >#127 Werte zerbricht, das da kein #0's raus kommen. Es meint nicht das es überhaupt keine #0's drin sein können. Nur der Enkodungsprozess macht keine neue.
Aber Unicode Codepoint 0 wird noch immer als ein einziges #0 Byte kodiert, und ist eine legalen Wert in Pascal (und Unicode) Strings.
Theoretisch hast du recht. Praktisch ist es vielleicht für den Enumerator nicht so bedeutsam. Caption:='öäü'+#0+'öäü'; zeigt auch nur bis zum #0 an. Man müsste dann einen extra Counter mitlaufen lassen, oder?
theo hat geschrieben:Theoretisch hast du recht. Praktisch ist es vielleicht für den Enumerator nicht so bedeutsam. Caption:='öäü'+#0+'öäü'; zeigt auch nur bis zum #0 an.
Das ist glaube ich widgetset abhängig. Aber #0 ist nicht printbar, also das ist Logisch. Aber nicht alle Strings werden für UI genutzt.
Man müsste dann einen extra Counter mitlaufen lassen, oder?
Ja. Oder den Pointer zum ende (pend:=@p[length)) kalkulieren, und damit vergleichen. Das ist etwas günstiger.