E2155 Typ '%s' benötigt Finalisierung - im Dateityp nicht erlaubt (Delphi)
Nach oben zu Fehler- und Warnungsmeldungen (Delphi)
Bestimmte Typen werden vom Compiler intern auf besondere Weise behandelt: Sie müssen zuerst ordnungsgemäß abgeschlossen werden, damit gegebenenfalls die gesamten von ihnen zurzeit belegten Ressourcen freigegeben werden. Da der Compiler nicht feststellen kann, welcher Typ während der Programmausführung tatsächlich im Variantenabschnitt eines Datensatzes gespeichert ist, kann nicht garantiert werden, dass diese speziellen Datentypen ordnungsgemäß abgeschlossen werden.
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 Abschluss durchgeführt werden muss, und kann daher nicht in einem Dateityp gespeichert werden.
program Solve; type Data = record name : array[1.0,25] of Char; end; var inFile : file of Data; begin end.
Eine einfache Lösung für den Typ String ist die Neudeklaration des Typs als Zeichen-Array. In anderen Fällen, in denen ein besonderer Abschluss durchgeführt werden muss, 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-E/A-Routinen zu schreiben.