![]() |
Delphi-Version: 5
TRichEdit.FindText vs. Pos?
Hallo,
ich hab ein Problem in einer Software. In einem TRichEdit ist ein Text mit etwa 1.200 Zeichen. Jetzt wird per FindText der Anfang eines bestimmten SubStrings gesucht. Das hatte früher super funktioniert, seit Delphi 2010 jedoch scheinbar nichtmehr. (Unicode?) Jetzt liefert mir die Funktion zB Position 1023 für den Anfang des SubStrings, wo Pos mir aber 1054 zurückliefert. Pos hat recht, FindText stochert irgendwo in der Pampa rum. Was genau spielt da rein, dass da solche Unterschiede zustande kommen? |
AW: TRichEdit.FindText vs. Pos?
Suche mal nach TRichEdit und FindText, in Beiträgen von mir. :zwinker:
Das ist ein Bug, welcher seit Jahren nicht gefixt wird, obwohl er bekannt ist. Problem: FindText sucht im internen Text des RichEdits und dort wird mit #13 als Zeilenumbruch gearbeitet seitdem Emba auf das RichEdit 2.0 umgestellt hat (k.A. warum Microsoft einen Mac-Zeilenumbruch dort verwendet), wärend Richedit.Text und RichEdit.Lines mit #13#10 arbeiten, da dort Emba im Text "rumpfuscht" und die Zeilenumbrüche austauscht ... also je Zeile verschieben sich somit die Indize um je eine Stelleda Length(#13) <> Length(#13#10). Kommt also drauf an, von welcher Seite aus man es betrachtet... Von Seite des .Text und .Lines.Text hat Pos recht, da du dieses ja auch darin suchen läßt, während bei SelStart, SelLength und den sontigen APIs, wo Emba nicht dran rumgepfuscht hat, natürlich FindText recht behält. |
AW: TRichEdit.FindText vs. Pos?
Boah is das idiotisch :wall:
Danke für die Erklärung :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:44 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