Autor Beitrag
baka0815
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 489
Erhaltene Danke: 14

Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
BeitragVerfasst: Do 17.07.08 11:17 
Liebe Delphianer, ich habe hier folgenden Code vorliegen:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1555
Erhaltene Danke: 70

Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
BeitragVerfasst: Do 17.07.08 17:16 
Welche Zeile tritt der Fehler genau auf??
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 17.07.08 21:47 
Öffnest du die Datei auch irgendwie mit AssignFile und Reset oder Rewrite?
baka0815 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 489
Erhaltene Danke: 14

Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 334
Erhaltene Danke: 3



BeitragVerfasst: Fr 18.07.08 14:10 
Die Delphi Hilfe schägt zu diesem Fehler die folgende Lösung vor:

ausblenden Delphi-Quelltext
1:
function LiesZeile(var Datei: TextFile): string;					


(nicht getestet, sondern nur aus der Hilfe kopiert)