Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - E2002: Dateityp ist hier nicht zulässig
baka0815 - Do 17.07.08 11:17
Titel: E2002: Dateityp ist hier nicht zulässig
Liebe Delphianer, ich habe hier folgenden Code vorliegen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| function LiesZeile(Datei: TextFile): string; var Zeile: string; Zeichen: Char; begin Zeile := ''; Zeichen := ' ';
while(Zeichen <> #13) and not EOF(Datei) do begin Read(Datei, Zeichen); if Zeichen = #0 then Zeichen := '0'; if Zeichen <> #13 then Zeile := Zeile + Zeichen; end; if not EOF(Datei) then Read(Datei);
Result := Zeile end; |
Das bringt mir den im Titel genannten Fehler. Wenn ich nun "TextFile" durch "PTextFile" (was ein Pointer auf TextFile ist) ersetze und "Datei" durch "Datei^" ersetze meckert er zumindest nicht mehr.
Wieso ist das so? Wird TextFile nicht "per reference" übergeben?
PS.: Bitte keine Diskussion über Sinn-/Unsinn des Codes bzw. Fehlerbehandlungen ;)
Boldar - Do 17.07.08 17:16
Welche Zeile tritt der Fehler genau auf??
Delete - Do 17.07.08 21:47
Öffnest du die Datei auch irgendwie mit AssignFile und Reset oder Rewrite?
baka0815 - Fr 18.07.08 13:45
Der Fehler ist ein Compile-Fehler, wird also direkt in der IDE angezeigt - zur Entwicklungs- und nicht zur Laufzeit.
Die Datei wird korrekt vorher geöffnet und auch korrekt geschlossen. Fehlerbehandlung ist außerhalb der Funktion.
SvenAbeln - Fr 18.07.08 14:10
Die Delphi Hilfe schägt zu diesem Fehler die folgende Lösung vor:
Delphi-Quelltext
1:
| function LiesZeile(var Datei: TextFile): string; |
(nicht getestet, sondern nur aus der Hilfe kopiert)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!