Einzelnen Beitrag anzeigen

Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.051 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Richedit: Suche nach Attributen (z.B. fsBold)

  Alt 8. Dez 2021, 22:22
Zum bestehenden Code:
  • 9000x Length(rtfText.Text) aufzurufen ist verdammt teuer! TRichEditStrings ist eine ganz schlechte Krücke, die irgendwie zwischen Plaintext (Eigenschaft Text), RTF (Methoden LoadFromFile, SaveToFile) und Speicherinhalt konvertiert. Das ist aus gutem Grund nur im implementation-Teil von ComCtrls.pas deklariert und nicht dokumentiert. Damit nach jedem Schleifendurchlauf den Plaintext zu generieren (Kompatibilität mit TCustomMemo), ist eben sehr teuer.
  • Warum setzt du SelLength? Das verstehe ich nicht.

Idee für ein grundlegend anderes Verfahren für wirklich große Dateien: Teile und herrsche mit Delphi-Referenz durchsuchenConsistentAttributes. Das ist für Boole'sche Eigenschaften vermutlich einfacher zu implementieren als für andere. Dafür brauchst du dann natürlich SelLength. Und eine brauchbare Implementierung für ConsistentAttributes (Message EM_GETCHARFORMAT) in RichEd32, von der ich nicht weiß, ob sie existiert.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat