Wenn du über eine TStringList eine Datei lädst, dann liegt diese natürlich komplett im Speicher.
Ist die Datei also 2 GiB groß, sind damit auch 2 GiB
RAM gleich weg.
Um solche gewaltigen Größen zu verarbeiten, solltest du immer nur einen Teil der Datei im Speicher halten.
Dies ginge bspw. mit
TFileStream
,
System.Text
(=SysUtils.TextFile, aber <>SysUtils.Text, aufpassen!) oder
file of char
.
Diese kannst du nun Zeile für Zeile auslesen, und jede Zeile einzeln durchsuchen.
[EDIT]
Btw., willkommen in der
DP!