Die Umwandlungen von PChar zu string, die Vergrößerung des Array usw. machen das ganze deutlich langsamer. So kannst du das kaum optimieren.
Schnell geht das nur, wenn du z.B. selbst mit Boyer Moore oder einem anderen Algorithmus suchst. Dann kannst du auch direkt auf den Pointern arbeiten. Wirklich einen Vorteil hat Boyer Moore aber nur bei längeren Texten.
Beispiele findest du viele, z.B.:
http://www.entwickler-ecke.de/viewto...=502137#502137
http://www.delphipraxis.net/175187-b...gorithmus.html
...
Und wenn man Assembler benutzt, gibt es auch noch Befehle wie repne scasb (bzw. repne scasw für
Unicode), mit der man Strings schnell scannen kann.