![]() |
Re: Zeilenanzahl bei name.log Datei begrenzen
Wieso Fehlermeldungen? An der Methodensignatur ändert sich ja nichts.
|
Re: Zeilenanzahl bei name.log Datei begrenzen
Ich steh voll aufm Schlauch. Weiß net so richtig was ihr meint.. :pale:
|
Re: Zeilenanzahl bei name.log Datei begrenzen
Es kann den anderen Programmen doch Wurscht sein, wie die Klasse intern arbeitet. Solange die Methoden aufrufkompatibel bleiben, sollte es auch keine Fehlermeldungen geben.
|
Re: Zeilenanzahl bei name.log Datei begrenzen
Delphi-Quellcode:
Daraus sollst du machen:
procedure TLogFile.AddLine(Line: string);
var F: TextFile; Zeile: String; begin FileMode := fmOpenReadWrite; AssignFile(F, FFileName); try Append(F); except Rewrite(F); end; Zeile := FormatDateTime('c.zzz - ', Now)+Line; WriteLn(F, Zeile); CloseFile(F); end;
Delphi-Quellcode:
Die anderen programme, die die Klasse benutzen bekommen doch gar nicht mit, dass sich innerhalb der Methode was am Quellcode geändert hat.
procedure TLogFile.AddLine(Line: string);
var sl: TStringList; begin sl := TStringList.Create; ...; ...; ...; end; |
Re: Zeilenanzahl bei name.log Datei begrenzen
Delphi-Quellcode:
procedure TLogFile.AddLine(Line: string);
var LogFileList : TStringList; Zeile: String; begin LogFileList := TStringList.Create; try LogFileList.LoadFromFile(FFileName); // hier eine while-schleife, solange LogFileList.Count > 999 // innerhalb der schleife immer LogFileList.Delete(0); damit wird oberstes zeile gelöscht. // danach hat das file im speicher 999 zeilen und die 1000. zeile kann hinzugefügt werden Zeile := FormatDateTime('c.zzz - ', Now)+Line; LogFileList.Append(Zeile); LogFileList.SaveToFile(FFileName); finally LogFileList.Free; end; end; |
Re: Zeilenanzahl bei name.log Datei begrenzen
Das Problem ist auf das TLogFile greifen verschiedene Programm zu, das eine darf 1000 zeilen haben und das andere nur 300.
|
Re: Zeilenanzahl bei name.log Datei begrenzen
Dann führ doch eine Property "MaxLines" oder so ein.
|
Re: Zeilenanzahl bei name.log Datei begrenzen
Ich bin mal so großzügig ...
Delphi-Quellcode:
type
TLogFile = class private // ... FMaxLines: Cardinal; // diese variable dann irgendwo im Code setzen - bsp 1000 ... in deinem Fall ... public // ... property MaxLines: Cardinal Read FMaxLines Write FMaxLines; end; procedure TLogFile.AddLine( Line: String ); begin with TStringList.Create do begin try LoadFromFile( FFileName ); while Count > (MaxLines-1) do Delete(0); Add( FormatDateTime('c.zzz - ', Now)+Line ); SaveToFile( FFileName ); finally Free; end; end; end; |
Re: Zeilenanzahl bei name.log Datei begrenzen
Setze ich sie in meinem Programm, das nur 1000 zeilen haben soll auf
Delphi-Quellcode:
Sagt er mir undefinierter Bezeichner FMaxLines
logFile.FMaxLines := 1000;
Irgendwie klappt heute gar nix.. Zum glück habt ihr geduld |
Re: Zeilenanzahl bei name.log Datei begrenzen
Hallo,
public ist MaxLines, nicht FMaxLines. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz