Einzelnen Beitrag anzeigen

Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#4

AW: E/A-Fehler in Wrapperklasse

  Alt 21. Feb 2012, 12:42
Delphi-Quellcode:
constructor TTest.Create(const AFileName: string);
begin
  inherited Create;
  AssignFile(f, AFileName);
  if FileExists(AFileName) then Reset(f) else Rewrite(f);
end;
Damit erzeuge ich die Datei aber, wenn sie nicht da ist, oder? Das will ich nicht, eine Exception ist schon in Ordnung.

zudem ist C: direkt seit Vista eine schlechte Idee
Der Pfad war natürlich ein Beispiel.

Hallo,

die 103 erhälst Du weil im Create kein CloseFile ausgeführt wurde.

Das Filehandle existiert und Du versuchst die Datei erneut zu öffnen.
Wenn Du mit der Execute Methode eine andere nicht existierende Datei öffnste solltest
Du dann auch den Fehlercode 2 bekommen.

Grüße
Klaus
Wahrscheinlich bin ich heute blind. Also nochmal: Ich habe folgenden Test-Code:
Delphi-Quellcode:
procedure TForm1.FormDblClick(Sender: TObject);
begin
  Test('C:\Gibts.nicht');
  //TTest.Execute('C:\Gibts.nicht');
end;
Wenn ich den laufen lasse, kommt Fehler 2 (wie erwartet). Wenn ich den Quellcode in
Delphi-Quellcode:
procedure TForm1.FormDblClick(Sender: TObject);
begin
  //Test('C:\Gibts.nicht');
  TTest.Execute('C:\Gibts.nicht');
end;
ändere und neu ausführe, kommt Fehler 103. Warum einmal 2 und einmal 103? Es wird doch in beiden Läufen auf eine Variable f: TextFile erst ein AssignFile(f, AFileName); und direkt danach ein Reset(f); losgelassen.
Uli Gerhardt
  Mit Zitat antworten Zitat