@ Muetze1 .. nein, er schrieb ja, dass es ab der Stringgrid langsam wird, das zuweisen ist alles noch fix.
also das Problem ist, dass Du den gesamten Text in die Stringgrid kopierst. Das schafft die nicht wirklich. Dafür ist sie nicht gedacht.
Was Du brauchst ist eine "virtuelle" Stringgrid.
Du musst im Ereignis OnDrawCell den Text mit Canvas.Textout selbst zeichnen.
Und immer nur den bereich, der auf dem Bildschirm zu sehen ist. die Stringlist fungiert nur als Hintergrundspeicher.
Dann gehts auch fix ...
Für riesige Files, die größer sind als Dein Hauptspeicher, brauchst Du das File noch nichtmal in den Hauptspeicher laden.
Dann genügt es, wenn Du nur den aktuellen Bereich, der vom User gerade angezeigt werden möchte lädst und anzeigst.
Aber solche einfachen Dinge kann noch nicht mal Notepad .. Ultraedit macht das aber ...
Im Prinzip reicht für solche großen Textdateien dann auch eine TDrawGrid ...
P.S. für die Funktion StringReplace gibts in der JCL von
Jedi eine schnellere Variante als die in der
VCL
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.