Du speicherst doch schon die ganze Zeit Deine Record's oder hab' ich das falsch verstanden.
Hier Dein eigenes Beispiel für READ:
Delphi-Quellcode:
assignfile(hrdat,lpf+'Datei.dat');
reset(hrdat);
while not eof (hrdat) do
begin
read(hrdat,daten);
StringGrid1.cells[0,reihe]:=daten.gegenstand;
StringGrid1.cells[1,reihe]:=daten.raum;
….usw.
end;
closefile(hrdat);
Du tauscht nur ein Element in Deinem Record aus, so wie schon beschrieben:
Delphi-Quellcode:
// alte Version
type
Dateien=record
Gegenstand,Raum,bemerk:string[25];
preis:double;
Anzahl:Integer;
gekauft_am:string[10];
identnr,bild:String[15];
bemerkung:String[255];
end;
// neue Version
type
Dateien=record
Gegenstand,Raum,bemerk:string[25];
preis:double;
Anzahl:Integer;
gekauft_am:string[10];
identnr,bild:String[15];
bemerkung: array[1..1024] of AnsiChar;
end;
Jetzt nicht aufhören zu lesen, hier folgt noch eine wichtige Informationen
Dein Record ist jetzt größer, also passen die Daten aus der alten Datei nicht mehr! Wenn es noch keine wichtigen Daten gab, einfach eine neue Datei anlegen. Gibt es in der alten Datei schon wichtige Daten, muss die "konvertiert" werden.
Mit dem alten Record wie gewohnt einlesen... die Daten dem neuen Record zuweisen und in einer neuen Datei mit anderem Namen speichern (das mit allen Records machen).