Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Object-Pascal / Delphi-Language (https://www.delphipraxis.net/35-library-object-pascal-delphi-language/)
-   -   Delphi Logfunktion mit Datum und Uhrzeit (https://www.delphipraxis.net/7137-logfunktion-mit-datum-und-uhrzeit.html)

Duffy 3. Aug 2003 16:16


Logfunktion mit Datum und Uhrzeit
 
Hallo alle zusammen,
hier ist mal eine einfache Logfunktion.
Delphi-Quellcode:
function StringMsgToFile(FileName: TFileName;
                         Msg: string;
                         WithDateTime: Boolean = True): Boolean;
const
  CR = #13;
  LF = #10;
  CRLF = CR + LF;
var
  FileStream: TFileStream;
begin
  Result := False;
  try
    // Versuch die existierende Datei zu öffnen
    FileStream := TFileStream.Create(FileName, fmOpenReadWrite or fmShareExclusive);
  except
    // Die Datei existiert nicht, eine neue öffnen
    FileStream := TFileStream.Create(FileName, fmCreate or fmShareExclusive);
  end;

  // an das Ende der Datei gehen (Append Modus)
  FileStream.Seek(0, soFromEnd);

  // CRLF an die Message anhängen
  Msg := MSg + CRLF;

  // Datum, Uhrzeit falls nötig einfügen
  if WithDateTime then
  begin
    Msg := FormatDateTime('ddd d. mmm. yyyy, hh:mm:ss: ', Now) + Msg;
  end;

  // Message schreiben
  try
    FileStream.Write(Pointer(Msg)^, Length(Msg));
  finally
    // FileStream freigeben
    FileStream.Free;
  end;

  // und Status zurückgeben
  Result := True;
end;
bye

[edit=flomei]Wir "räumen auf", daher Titel geändert... Mfg, flomei[/edit]

Duffy 8. Aug 2003 05:43

Re: eine einfache triviale Logfunktion mit Datum und Uhrzeit
 
Hallo alle zusammen,
hier noch eine zweite, korrigierte und geänderte Fassung nach den Anregungen von negaH.
Delphi-Quellcode:
function StringMsgToFile(Msg: string;
                         WithDateTime: Boolean = True;
                         FileName: TFileName = ''): Boolean;
const
  OpenFlags: array[Boolean] of Integer = (fmCreate or fmShareExclusive, fmOpenReadWrite or fmShareExclusive);
var
  FileStream: TFileStream;
begin
  Result := False;
  if Trim(Filename) = '' then
    FileName := ChangeFileExt(ParamStr(0), '.log');

  // Datei öffnen
  FileStream := TFileStream.Create(FileName, OpenFlags[FileExists(FileName)]);
{ Falls TFileStream.Create auf einen Fehler rennt, dann ist hier schon Schluß mit
    der Funktion. Es wird eine Standard Exception von TFileStream.Create ausgelöst. }

  try
    //  an das Ende der Datei gehen (Append Modus)
    FileStream.Seek(0, soFromEnd);

    // CRLF an die Message anhängen
    Msg := Msg + CRLF;

    // Datum, Uhrzeit falls nötig einfügen
    if WithDateTime then
      Msg := FormatDateTime('ddd d. mmm. yyyy, hh:mm:ss: ', Now) + Msg;

    // Message schreiben
    FileStream.Write(PChar(Msg)^, Length(Msg));
  finally
    // FileStream freigeben
    FileStream.Free;
  end;

  // und Status zurückgeben
  Result := True;
end;
bye

Daniel B 13. Aug 2003 16:44

Re: eine einfache triviale Logfunktion mit Datum und Uhrzeit
 
Hallo Claus,
Zitat:

Zitat von Duffy
Delphi-Quellcode:
const
  CR = #13;
  LF = #10;
  CRLF = CR + LF;

Das geht natürlich auch in einer Zeile:
Delphi-Quellcode:
const
  CRLF = #13#10;


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz