Moin!
| Jelzin hat folgendes geschrieben: |
| Damit wird der ganze Quelltext wesentlich komplizierter und nur bedingt schneller. Also keine richtige Lösung für mein Problem. |
Hopla, gemach. Komplexer Code ist nicht automatisch langsam! Sobald du Calls im Code hast, wird es praktisch sowieso nicht mehr ohne Hilfsmittel möglich, das Laufzeitverhalten zu beurteilen. Dann kommen noch Caching-Aspekte der Hardware hinzu und so weiter...
Generell läßt sich aber sicherlich sagen, dass Code, der viele Daten modifiziert bzw. "bewegt", überlicherweise langsamer ist als Code, der "sucht". Von dieser Annahme ausgehend ist es bestimmt effizienter, zunächst die korrekten Positionen für eine Änderung zu bestimmen und dann nur das Notwendige zu ändern.
Wenn du allerdings annimmst, dass dein Code zur Verwendung von SelStart und SelEnd nicht effizient ausfallen würde, empfehle ich dir den Filter-Ansatz zu verfolgen. Ich würde mir das in etwa so vorstellen:
- Datei "stückweise" einlesen
- Stücke durch den Code laufen lassen, der die Formatierung vornimmt und dabei ins RichEdit schreiben
- wiederholen, bis alle Stücke gelesen sind
Wenn du voraussetzen kannst, dass bei ALLEN Anwendern "genug" Speicher vorhanden ist, kannste die Textdatei auch komplett in eine TStringList einlesen und dann ins RichEdit überführen ("filtern"). Vorsicht! Min. doppelter Speicherbedarf!
Diesen Filter dann als Thread auszuführen ist natürlich noch eine andere Aufgabe...
cu
Narses