debuger

Code by Ireneusz A.
 avatar
user_6919294
pascal
4 months ago
1.3 kB
8
Indexable
// Cześć Daria, rozważ użycie TStreamWriter zamiast procedur 
// - AssignFile, Append, Rewrite (nowocześniejsze podejście)

procedure DebugLog(const Msg: string; const Args: array of const); overload;
var
  StreamWriter: TStreamWriter;
  LogPath: string;
  LogLine: string;
begin
  LogPath := ExtractFilePath(ParamStr(0)) + 'debug.log';
  try
    LogLine := Format('%s - %s', [FormatDateTime('yyyy-mm-dd hh:nn:ss', Now), Format(Msg, Args)]);
    
    StreamWriter := TStreamWriter.Create(LogPath, True); // True oznacza dołączanie do istniejącego pliku
    try
      StreamWriter.WriteLine(LogLine);
    finally
      StreamWriter.Free;
    end;
  except
    on E: Exception do
      ShowMessage('Failed to write to the log: ' + E.Message);
  end;
end;

procedure DebugLog(const Msg: string); overload;
begin
  DebugLog(Msg, []);
end;

{ Podsumowanie:

  Kluczowe zmiany:

  - Zastąpienie TextFile i metod AssignFile, Append, Rewrite klasą TStreamWriter
  - Użycie Create z parametrem True, który oznacza dołączanie do istniejącego pliku
  - Metoda WriteLine zastępuje WriteLn
  - Jawne zwolnienie zasobu poprzez Free w bloku finally

  Zalety tego podejścia:

  - Bardziej nowoczesne
  - Automatyczne zarządzanie buforem
  - Prostsza składnia
  - Bezpieczniejsze zarządzanie zasobami
  
 }
Editor is loading...
Leave a Comment