Dieses ganze AssignFile-reset-rewrite-closeFile-Zeugs stammt
noch aus der Pascal-Zeit. Ich hab's damals auch so gelernt
und hatte kein Bock umzusteigen, aber das mit den Filestreams
ist wirklich (!) ganz einfach und bietet viele Vorteile
der Einfachheit und vor allem in der Geschwindigkeit.
Wenn Du z.B. einen Dateisplitter für beliebige Dateien schreiben möchtest
(siehe Anhang) dann kennst Du die Struktur der Dateien meistens gar nicht.
FileStreams sehen Strukturen einfach als eine Menge von einzelnen
Bytes an. Möchtest Du z.B einen Record speichern, dann machst Du das so:
Delphi-Quellcode:
type TMeinRecord = record
buchstabe : Char;
alter : byte;
groesse : real;
Daten : array[0..7] of byte;
end;
//...
var MeinRecord : TMeinRecord;
//...
procedure schreibeMeinRecordInDatei;
var Filestream: TFileStream;
begin
// FileStream:= TFileStream.create(<Dateiname>, <Zugriff auf Datei>);
FileStream:= TFileStream.create('C:\test.dat', fmCreate OR fmShareExclusive);
// FileStream.write(<dantenquelle>, <anzahl der bytes>)
FilStream.write(MeinRecord, SizeOf(TMeinRecord);
// Dateizugriff freigeben
FileStream.free;
end;
Vorteile von der Pascal-Variante sind mir nicht bekannt. Hab' das aus dem
Kopf geschrieben, ergo ungetestet.
Nachtrag: Musst natürlich noch eventuelle
Exceptions abfangen.