Hallo zusammen!
Ich bastele mir gerade eine kleine Klasse zusammen, die u.a. ein TextFile enthält. Dummerweise reagiert mein Konstrukt anders als erwartet, wenn ich versuche, eine nicht vorhandene Datei zu öffnen. Hier mal meine Test-
Unit:
Delphi-Quellcode:
{$IOCHECKS ON}
unit Unit2;
interface
type
TTest =
class
private
f: TextFile;
public
constructor Create(
const AFileName:
string);
destructor Destroy;
override;
class procedure Execute(
const AFileName:
string);
static;
end;
procedure Test(
const AFileName:
string);
implementation
{ TTest }
constructor TTest.Create(
const AFileName:
string);
begin
inherited Create;
AssignFile(f, AFileName);
Reset(f);
end;
destructor TTest.Destroy;
begin
CloseFile(f);
inherited;
end;
class procedure TTest.Execute(
const AFileName:
string);
var
t: TTest;
begin
t := TTest.Create(AFileName);
try
//
finally
t.Free;
end;
end;
{ Test }
procedure Test(
const AFileName:
string);
var
f: TextFile;
begin
AssignFile(f, AFileName);
Reset(f);
try
//
finally
CloseFile(f);
end;
end;
end.
Wenn ich nun
Test('C:\Gibts.nicht');
aufrufe, kriege ich wie erwartet "Datei nicht gefunden." (E/A-Fehler 2). Führe ich allerdings
TTest.Execute('C:\Gibts.nicht');
aus, so kommt die Meldung "E/A-Fehler 103.". Kann mir das jemand erklären?