Zitat von
DJ-SPM:
Was ist das für ein Fehler?
Ich vergess es auch immer wieder, aber auch bei Compiler-Fehlern hilft ein beherzter Griff zur F1-Taste!
Zitat von
Delphi-Hilfe:
Bestimmte Typen werden vom Compiler intern auf besondere Weise behandelt: Sie müssen zuerst ordnungsgemäß abgeschlossen werden, damit gegebenenfalls die gesamten von ihnen zur Zeit belegten Ressourcen freigegeben werden. Da der Compiler nicht feststellen kann, welcher Typ zur Laufzeit in dem Variantabschnitt eines Datensatzes gespeichert ist, kann nicht garantiert werden, daß diese speziellen Datentypen ordnungsgemäß abgeschlossen werden.
Delphi-Quellcode:
program Produce;
type
Data = record
name : string;
end;
var
inFile : file of Data;
begin
end.
String ist einer der Typen, für die ein besonderer Abschluß durchgeführt werden muß, und kann daher nicht in einem Dateityp gespeichert werden.
Delphi-Quellcode:
program Solve;
type
Data = record
name : array [1..25] of Char;
end;
var
inFile : file of Data;
begin
end.
Eine einfache Lösung für String ist die Neudeklaration des Typs als Array mit Zeichen. In anderen Fällen, in denen ein besonderer Abschluß durchgeführt werden muß, wird es immer schwieriger, eine binäre Dateistruktur mit Standard-Pascal-Merkmalen wie "file of" aufrechtzuerhalten. In diesen Situationen ist es wahrscheinlich einfacher, spezialisierte Datei-I/O-Routinen zu schreiben.