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.