![]() |
StringReplace in Delphi 2009
Moin,
Ist StringReplace aus SysUtils in Delphi 2009 wirklich Unicode-fähig? Im Code-Kommentar und in der Hilfe steht zwar, dass diese Funktion erwartet, dass der String Multi-Byte-Zeichen enthalten könnte, aber dennoch greift die Funktion innerhalb auf eine Menge Ansi-Funktionen (AnsiUpperCase, AnsiPos, etc.) zurück. Irgendwas kann doch da nicht stimmen, oder? Grüße, Max |
Re: StringReplace in Delphi 2009
AnsiPos und AnsiUpperCase arbeiten unter D2009 auch mit Unicode - wie fast alle stringverarbeitenden Routinen.
|
Re: StringReplace in Delphi 2009
Moin,
OK, das verstehe ich nicht (aber ich kam mit etwas Nachforschung zu selbigem Ergebnis). Ich dachte das [b]Ansi[b] im Namen würde die Funktion wissentlich auf Ansi-Strings beschränken? Merkwürdig implementiert ist das. Grüße & Danke, Max |
Re: StringReplace in Delphi 2009
Zitat:
|
Re: StringReplace in Delphi 2009
Die Namensgebung ist jetzt vielleicht etwas ungewohnt, aber wenn man sich es genau überlegt macht es schon Sinn. Weil sonst müßte man alle Ansi-Funktionen gegen Wide-Funktionen austauschen. Das würde gemeinsamen Quellcode mit älteren Delphiversionen und die Portierung nach Unicode ziemlich aufwändig machen.
Viele Ansifunktionen haben übrigens auch in früheren Versionen schon intern mit Unicode gearbeitet. Bisher hat z.B. AnsiUpperCase die Windows Funktion CharUpperBuffA aufgerufen. CharUpperBuffA hat dann den String erst mal nach Unicode konvertiert, dann in Großbuchstaben umgewandelt, und dann zurück nach Ansi konvertiert. Somit ist AnsiUpperCase in Delphi 2009 schneller geworden, und der Speicherverbrauch gesunken, da die Strings nicht mehr von Ansi nach Unicode konvertiert werden müssen. Anmerkung: Da Win9x keine Unicodeunterstützung mitliefert, verhält sich CharUpperBuffA dort vermutlich anders. Vielleicht hat ja jemand mal Lust genauer zu untersuchen, wie sich Verwendung von Windows Ansi Funktionen auf die Fragmentierung des Heaps auswirkt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 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