Ok, ich probiers mal:
Anstatt immer auf die Datei zuzugreifen (was übrigens auch langsam ist) machst du folgendes: Du legst dir ein
Array of T_Adresse an. Wenn du eine Datei öffnest, liest du die ganze Datei in das Array.
Dann liest du die Elemente aus dem Array und schreibst sie in das Stringgrid.
Falls im Stringgrid was verändert wird, musst du die Änderung in das Array übertragen.
Beim Speichern entsprechend umgekehrt: Das Array in die Datei speichern.
Das nennt sich dann "Trennen der Daten vom Interface"
Der Vorteil von dem
Gedöns: Du kannst im Stringgrid eine Teilmenge der Daten anzeigen. (Also z.B. nur die Einträge, deren Namen mit Max beginnen)
Und du malträtierst die Festplatte nicht so sehr ...