Also ich würde den ganzen
alten Kruscht mit assignfile, readln, ... wegschmeisen und stattdessen
mit den
"modernen" Streams arbeiten.
Der Datentyp
file of [Typ] verwendet gepufferte Schreib- und Lesezugriffe.
In der heutigen Zeit, da das Betriebssystem Dateien puffert, ist das eher störend.
Du kannst die gesammte Datei auf einen Rutsch auf einen String einlesen.
Damit stehen dann sämtliche Möglichkeiten offen.
Delphi-Quellcode:
function LoadStringFromFile(const filename:string):string;
var
fs : TStream;
begin
fs := TFileStream.Create(filename, fmOpenRead or fmShareDenyWrite);
try
SetLength(Result, fs.Size);
fs.ReadBuffer(Result[1], fs.Size);
finally
fs.Free;
end;
end;
....
var
daten : string;
begin
daten := LoadStringFromFile(opendialog.FileName);
memdaten.Lines.Text := daten;
Die Funktion LoadStringFromFile sollte man immer parat haben. Ebenso wie das Gegenstück:
Delphi-Quellcode:
procedure SaveStringToFile(const filename, data:string);
var
fs : TStream;
begin
fs := TFileStream.Create(filename, fmOpenWrite or fmShareDenyWrite);
try
fs.WriteBuffer(data[1], Length(data));
finally
fs.Free;
end;
end;