![]() |
Datumsänderung mitbekommen
Hallo!
Mein Programm sollte täglich eine Logdatei erstellen. Da es aber unter Umständen mehrere Tage ohne Unterbrechung läuft (bzw. z.B. von 23.15 bis 00.30), würde ich gerne mitbekommen, wenn sich das Datum ändert, sprich wenn ein neuer Tag anbricht. Bisher habe 2 Möglichkeiten gefunden, die mir allerdings wenig elegant erscheinen: a) Das Datum regelmäßig (jede Minute, oder so) mit einem Timer zu checken b) Im OnIdle Event das Datum regelmäßig zu checken Ich hoffe, dass ihr bessere Ideen habt. Vielleicht hat Windows irgendeine Message für solche Fälle? Danke, Andreas |
Re: Datumsänderung mitbekommen
unter unix gibts etwas, das nennt sich cron.
der checkt jede minute, ob er was zu tun hat. in der zwischenzeit wird ge-sleept(). sehr resourcensparend. hab sowas nachprogrammiert und das teil laeuft auf meiner box tagelang und verbraucht kaum eine sekunde prozessorzeit. |
Re: Datumsänderung mitbekommen
Hallo Andreas,
du kannst in der Schreibroutine prüfen, ob der richtige LogFile existiert:
Delphi-Quellcode:
Grüße vom marabu
var
logFile: TextFile; function CurrentLogFileName: string; begin Result := ChangeFileExt(DateToStr(Now), '.log'); end; procedure Log (msg: string); var dt: TDateTime; lfn: string; begin lfn := CurrentLogFileName; if FileExists (lfn) then Append (logFile) else begin AssignFile(logFile, lfn); Rewrite (logFile); end; dt := now; if msg = '' then WriteLn(logFile) else begin Write(logFile, FormatDateTime('yyyy-mm-dd', dt), ' '); Write(logFile, FormatDateTime('hh:mm:ss', dt), ': '); WriteLn(logFile, Translate(msg, #13#10, #32#32)); end; CloseFile (logFile); end; |
Re: Datumsänderung mitbekommen
Das Teil unter Unix/Linux kenne ich, aber wenn ich so etwas nachschreibe, dann muss ich ja wieder jede Minute das Datum checken. Genau das will ich ja vermeiden.
Marabu: Da stellt sich aber die Frage, wann ich die Schreibroutine aufrufen soll? Wenn ich das jede Minute mache, komme ich wieder auf das selbe hinaus, wie ich oben in meinen 2 Möglichkeiten beschrieben habe. |
Re: Datumsänderung mitbekommen
Naja, wenn du eine Logdatei erstellst, hast du ja bestimmte Events, bei denen du einen Eintrag zur Logdatei hinzufügst. Wenn du genau dann das Datum überprüfst, kannst du doch nichts falsch machen, oder?
|
Re: Datumsänderung mitbekommen
im ernst.
jede minute das datum checken ist nahezu kostenlos. windows hat eine mstask.exe, die auch nichts anderes macht. und wenn du die loggingfunktionen der betreffenden programme kontrollieren kannst, dann mach da gleich den datumsvergleich rein. |
Re: Datumsänderung mitbekommen
Danke für die Antworten...
Das Problem ist, dass ich eben keine bestimmten Events habe, weil das Programm ein Netzwerktrafficmonitor ist. Und in der Logdatei soll dann Download/Upload des Tages stehen. Deshalb bin ich ja in dieser Lage. Wenn es da keine ordentliche Lösung gibt, dann bleiben mir sowieso nur 2 Möglichkeiten: a) Logdatei pro Sitzung. b) Das Datum regelmäßig zu checken, wie es mir auch ripper8472 empfiehlt. |
Re: Datumsänderung mitbekommen
Naja, in deinem Fall mußt du ja sowieso regelmäßig checken, wieviel Traffic entstanden ist. Wenn du bei der Prüfung auch gleich noch die Datumsprüfung einbaust, sollte das doch passen, oder?
|
Re: Datumsänderung mitbekommen
Ja das stimmt. Ich habe sowieso einen Timer, der jede Sekunde Daten von der Schnittstelle abholt. Es ist für mich keine Problem dort auch das Datum zu überprüfen. Ich hielt es nur für übertrieben, jede Sekunde das Datum zu checken. Ich werde das jetzt wohl machen.
Danke für eure Hilfe, Andreas |
Re: Datumsänderung mitbekommen
Wird aber notwendig sein, um den Traffic genau aufzuteilen. Und wie gesagt, diese zusätzliche Anweisung kostet so gut wie nichts.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:13 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 by Thomas Breitkreuz