Meines Wissens is der Datenspeicher nicht mit dem Hauptspeicher direkt vergleichbar. Deswegen is noch was frei und trotzdem voll
Ich würds so machen:
Testweise mal "packed record" schreiben statt "record". Weiss aber nicht ab das soviel hilft.
Nicht alles komplett lesen sondern irgendeine Zwischenspeicherung vornehmen. Z.B. max. 1000 Einträge, dann in eine temporäre Datei sichern.
Solange es nur um Einlesen/Schreiben geht, is das simpel. Wenn aber noch Operationen wie Datensatz löschen u.ä. durchgeführt werden sollen, wird das kompliziert.
Erst wenn man dreimal auf Holz klopfen will, stellt man fest, dass die Welt nur noch aus Plastik und Aluminium besteht.