Momentan siehts so aus:
Delphi-Quellcode:
var
UserDatei : TUserDatei; // Global Filehandle
Function DateiAnlegen(const Path : String) : Boolean;
var
Tmp : Integer;
begin
if DateiRewriteable(Path) then
begin
try
AssignFile(UserDatei,Path);
If FileIsReadOnly(Path) then Tmp := FileSetAttr(Path,FileGetAttr(Path) - faReadOnly);
Rewrite(UserDatei);
except
on EInOutError do ShowMessage('Fehler beim anlegen der Datei `' + ExtractFileName(Path) + '`!')
end;
DateiAnlegen := True;
end
else
DateiAnlegen := False;
end;
procedure DatensatzAnhaengen(const Path : String; const Datensatz : TUserDateiData);
begin
Try
Seek(UserDatei,FileSize(UserDatei));
Write(UserDatei,Datensatz);
Except
On EInOutError do
ShowMessage('Schreiben in die Datei `' + ExtractFileName(Path) + '` fehlgeschlagen!')
end
end;
Un hier die Variante, um die "LifeDatei" zu schreiben:
Delphi-Quellcode:
var
LifeDatei : TLifeDatei;
Function DateiAnlegen(const Path : String) : Boolean;
var
Tmp : Integer;
begin
if DateiRewriteable(Path) then
begin
try
AssignFile(LifeDatei,Path);
If FileIsReadOnly(Path) then Tmp := FileSetAttr(Path,FileGetAttr(Path) - faReadOnly);
Rewrite(LifeDatei);
except
on EInOutError do ShowMessage('Fehler beim anlegen der Datei `' + ExtractFileName(Path) + '`!')
end;
DateiAnlegen := True;
end
else
DateiAnlegen := False;
end;
procedure DatensatzAnhaengen(const Path : String; const Datensatz : TLifeDateiData);
begin
Try
Seek(LifeDatei,FileSize(LifeDatei));
Write(LifeDatei,Datensatz);
Except
On EInOutError do
ShowMessage('Schreiben in die Datei `' + ExtractFileName(Path) + '` fehlgeschlagen!')
end
end;
(Die beiden Codes liegen, wie schon gesagt, in zwei verschiedenen Units)
Wie man unschwer erkennen kann sind die Proceduren identisch, bis auf die Typen...
Gruss,
Steffen