Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   TRichEdit.FindText vs. Pos? (https://www.delphipraxis.net/161872-trichedit-findtext-vs-pos.html)

Angel4585 25. Jul 2011 13:54

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?

himitsu 25. Jul 2011 14:32

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.

Angel4585 26. Jul 2011 07:44

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 21:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz