AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Zeilenanzahl bei name.log Datei begrenzen
Thema durchsuchen
Ansicht
Themen-Optionen

Zeilenanzahl bei name.log Datei begrenzen

Ein Thema von aaaaaaaaaa_10 · begonnen am 17. Jul 2009 · letzter Beitrag vom 22. Jul 2009
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#11

Re: Zeilenanzahl bei name.log Datei begrenzen

  Alt 17. Jul 2009, 10:58
Wenn die Delphiversion Class-Helper unterstützt, dann ginge sowas, für alle Nachfahren von TStrings:
Delphi-Quellcode:
Type TStringsAddHelper = Class Helper for TStrings
    Function TruncedAdd(Const S: String; MaxLines: Integer): Integer;
  End;

Function TStringsAddHelper.TruncedAdd(Const S: String; MaxLines: Integer): Integer;
  Begin
    If MaxLines > 0 Then
      While Count >= MaxLines do Delete(0);
    Result := Add(S);
  End;
z.B. maximal 1000 Zeilen:
Delphi-Quellcode:
SL := TStringList.Create;
SL.TruncedAdd('string', 1000);

// oder
Memo1.Lines.TruncedAdd('string', 1000);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
aaaaaaaaaa_10
(Gast)

n/a Beiträge
 
#12

Re: Zeilenanzahl bei name.log Datei begrenzen

  Alt 20. Jul 2009, 13:51
Also LogFile ist vorgegeben als TLogFile. Da hab ich auch nicht die Wahl daraus ne StringList zu machen.
Wie lösche ich also eine Zeile aus nem TLogFile?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Zeilenanzahl bei name.log Datei begrenzen

  Alt 20. Jul 2009, 13:54
Was ist denn TLogFile für eine Klasse? Mein D2007 kennt die zummindest nicht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
aaaaaaaaaa_10
(Gast)

n/a Beiträge
 
#14

Re: Zeilenanzahl bei name.log Datei begrenzen

  Alt 20. Jul 2009, 13:55
Was von meinem Vorgänger

Delphi-Quellcode:
type
  TLogFile = class(TObject)
  private
     FFileName: String;
    FLogSize: Integer;
    FAppLog: Boolean;
  public
      constructor Create(FileName: string; LogSize: integer; AppLog: boolean);
    destructor Destroy; override;
      procedure AddLine(Line: string);
      property FileName: string read FFileName;
  end;
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: Zeilenanzahl bei name.log Datei begrenzen

  Alt 20. Jul 2009, 13:57
Wo werden die Lines denn gespeichert ? Also ich kann kein Array / keine Liste / oder sonstiges im Private Bereich sehen...

MfG
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: Zeilenanzahl bei name.log Datei begrenzen

  Alt 20. Jul 2009, 13:58
Das sind aber etwas zu wenig Infos, als dass man nun einen gescheiten Rat geben könnte. Vermutlich werden in der Klasse die Strings ja auch in einer Liste verwaltet, in dem Stück Code ist davon aber nichts zu sehen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
aaaaaaaaaa_10
(Gast)

n/a Beiträge
 
#17

Re: Zeilenanzahl bei name.log Datei begrenzen

  Alt 20. Jul 2009, 14:00
Delphi-Quellcode:
constructor TLogFile.Create(FileName: string; LogSize: integer;
  AppLog: boolean);
begin
   FFileName := FileName;
  FLogSize := LogSize;
  FAppLog := AppLog;
end;

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;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Zeilenanzahl bei name.log Datei begrenzen

  Alt 20. Jul 2009, 14:03
Ahja, es wird also direkt in die Datei geschrieben. Aber Du könntest die AddLine-Methode ja dahingehend ändern, dass diese eine TStringlist verwendet.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
aaaaaaaaaa_10
(Gast)

n/a Beiträge
 
#19

Re: Zeilenanzahl bei name.log Datei begrenzen

  Alt 20. Jul 2009, 14:03
Und dann? Hab ich überall Fehlermeldungen, weil die Uni Logfile.pas von vielen anderen Units benutzt wird..
  Mit Zitat antworten Zitat
pertzschc

Registriert seit: 29. Jul 2005
Ort: Leipzig
305 Beiträge
 
Delphi 10.4 Sydney
 
#20

Re: Zeilenanzahl bei name.log Datei begrenzen

  Alt 20. Jul 2009, 14:05
Zitat von aaaaaaaaaa_10:
Und dann?
Zitat von pertzschc:
Wenn es eine Zeilenbasierte Datei mit Stringinhalten ist, könntest Du StringList verwenden.
Einlesen, Count prüfen, jeweils erste Zeilen [0,1,..] löschen bis Count <=1000, dann wieder in die Datei speichern.
Du liest nicht so richtig, was wir Dir schreiben - oder?

Gruß,
Christoph
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 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