debuger
Code by Ireneusz A.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