AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datumsänderung mitbekommen

Ein Thema von EConvertError · begonnen am 5. Nov 2005 · letzter Beitrag vom 5. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2      
EConvertError

Registriert seit: 29. Sep 2003
Ort: Österreich
230 Beiträge
 
#1

Datumsänderung mitbekommen

  Alt 5. Nov 2005, 10:48
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
Andreas N.
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#2

Re: Datumsänderung mitbekommen

  Alt 5. Nov 2005, 10:55
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.
Christoph
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Datumsänderung mitbekommen

  Alt 5. Nov 2005, 10:57
Hallo Andreas,

du kannst in der Schreibroutine prüfen, ob der richtige LogFile existiert:

Delphi-Quellcode:
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;
Grüße vom marabu
  Mit Zitat antworten Zitat
EConvertError

Registriert seit: 29. Sep 2003
Ort: Österreich
230 Beiträge
 
#4

Re: Datumsänderung mitbekommen

  Alt 5. Nov 2005, 11:06
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.
Andreas N.
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Datumsänderung mitbekommen

  Alt 5. Nov 2005, 11:12
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?
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#6

Re: Datumsänderung mitbekommen

  Alt 5. Nov 2005, 11:15
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.
Christoph
  Mit Zitat antworten Zitat
EConvertError

Registriert seit: 29. Sep 2003
Ort: Österreich
230 Beiträge
 
#7

Re: Datumsänderung mitbekommen

  Alt 5. Nov 2005, 12:23
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.
Andreas N.
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Datumsänderung mitbekommen

  Alt 5. Nov 2005, 12:43
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?
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
EConvertError

Registriert seit: 29. Sep 2003
Ort: Österreich
230 Beiträge
 
#9

Re: Datumsänderung mitbekommen

  Alt 5. Nov 2005, 12:52
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
Andreas N.
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Datumsänderung mitbekommen

  Alt 5. Nov 2005, 12:56
Wird aber notwendig sein, um den Traffic genau aufzuteilen. Und wie gesagt, diese zusätzliche Anweisung kostet so gut wie nichts.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:45 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