Einzelnen Beitrag anzeigen

Steffen

Registriert seit: 19. Mär 2003
Ort: Hamburg
111 Beiträge
 
Delphi 7 Enterprise
 
#5
  Alt 31. Mär 2003, 16:12
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
  Mit Zitat antworten Zitat