Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Nach erreichen der Zeit --> löschen ? (https://www.delphipraxis.net/27709-nach-erreichen-der-zeit-loeschen.html)

Vader 14. Aug 2004 12:11


Nach erreichen der Zeit --> löschen ?
 
hallo,

hab da einen code aufgeschnappt der bei mir aber nicht funzt !
er soll nach erreichen einer bestimmten zeit ein file löschen
Code:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if TimeToStr(NOW) = '13:06' then
begin
  deletefile('d:/aaa.txt');
end;
end;
was ist da falsch ??

mfg vader

Matze 14. Aug 2004 12:20

Re: Nach erreichen der Zeit --> löschen ?
 
Du muss

Stunden : Minuten : Sekunden

angeben, nicht nur

Stunden : Minuten

Sharky 14. Aug 2004 12:25

Re: Nach erreichen der Zeit --> löschen ?
 
Hai Vader,

Du solltest auch unbedingt auf >= prüfen. Wenn der Timer im falschen Moment auslöst (1 ms nach deiner eingestellten Zeit) würde die Datei nie gelöscht werden.

devnull 14. Aug 2004 12:26

Re: Nach erreichen der Zeit --> löschen ?
 
Zitat:

Zitat von Vader
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if TimeToStr(NOW) = '13:06:00' then  //@Matze: nur die Minuten überprüfen, die letzten 3 Stellen des TimetoStr abschneiden
     deletefile('d:\aaa.txt');         //event. Backslash noch
end;

@Sharky: Wie mit >=??? Das sind doch Strings... Und das Intervall is doch eigentlich auch egal, wenn die Sekunde nicht mehr übereinstimmt, oder :?:

Matze 14. Aug 2004 12:32

Re: Nach erreichen der Zeit --> löschen ?
 
Zitat:

Zitat von devnull
@Matze: nur die Minuten überprüfen, die letzten 3 Stellen des TimetoStr abschneiden

:?:

Zitat:

Zitat von devnull
@Sharky: Wie mit >=??? Das sind doch Strings... Und das Intervall is doch eigentlich auch egal, wenn die Sekunde nicht mehr übereinstimmt, oder :?:

Wenn z.B. das intervall auf 3 Sek steht, kann das ganz anders aussehen, nur beim Intervall von 1 Sek, sollte nichts schief gehen.

devnull 14. Aug 2004 12:34

Re: Nach erreichen der Zeit --> löschen ?
 
Zitat:

Zitat von Matze
Zitat:

Zitat von devnull
@Matze: nur die Minuten überprüfen, die letzten 3 Stellen des TimetoStr abschneiden

:?:

Das war so gemeint:

Delphi-Quellcode:
  for i := 1 to 5 do
      s := s + TimeToStr[i];
  if s = '13:06' then ... //Also werden Stunden und Minuten überprüft
So in der Art mal rumgefuddelt...

MrKnogge 14. Aug 2004 12:35

Re: Nach erreichen der Zeit --> löschen ?
 
Er meinte, du sollst statt auf der einen Seite Millisekunden hinzuzufügen, sie auf der anderen Seite einfach wegnehmen.

gruss

Sharky 14. Aug 2004 12:36

Re: Nach erreichen der Zeit --> löschen ?
 
Zitat:

Zitat von devnull
...@Sharky: Wie mit >=??? Das sind doch Strings... Und das Intervall is doch eigentlich auch egal, wenn die Sekunde nicht mehr übereinstimmt, oder :?:

Hai devnull,
damit wollte ich daruf hinweisen das er seinen String mit der Zeit in ein TDateTime umwandeln soll und dann mit >= prüft.
Das Intervall ist schon wichtig. Angenommen er hat ein TimerIntervall von 5000 eingstellt würde dieser Code nur gehen wenn die if abfrage genau um 13:06:00 erfolgt.
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if TimeToStr(NOW) = '13:06:00' then  //@Matze: nur die Minuten überprüfen, die letzten 3 Stellen des TimetoStr abschneiden
     deletefile('d:\aaa.txt');         //event. Backslash noch
end;
So wäre es meiner Meinung nach besser:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
 stf : String;
begin
  stf := ShortTimeFormat;
  stf := 'hh:mm:ss';
  if (StrToTime('13:06:00') >= now) then
  begin
    // Mache etwas;
  end;
  ShortTimeFormat := stf;
end;

Matze 14. Aug 2004 12:38

Re: Nach erreichen der Zeit --> löschen ?
 
achso war des gemeint... :roll:

@Sharky: Wenn's gelöscht ist, möchte deine Prozedur es aber bestimmt nochmal löschen und nochmal... ;)

Nachtrag: Oder mit FileExists erst überprüfen.

Sharky 14. Aug 2004 12:41

Re: Nach erreichen der Zeit --> löschen ?
 
Zitat:

Zitat von Matze
..@Sharky: Wenn's gelöscht ist, möchte deine Prozedur es aber bestimmt nochmal löschen und nochmal..

Darum steht da ja auch nur "Mache Etwas" ;-) Und dazu gehört unter anderem die Abfrage ob die Datei überhaupt existiert und, je nach Anwendung, auch das daktivieren des Timers :stupid:

Markus 14. Aug 2004 12:45

Re: Nach erreichen der Zeit --> löschen ?
 
Wenn du auf Nummer sicher gehen willst, dann überprüfe es mit formatdatetime():

Delphi-Quellcode:
if formatdatetime('hh:mm',now)='13:06' then do
begin
   if fileexists('d:\aaa.txt') then deletefile('d:\aaa.txt');
end;

Vader 14. Aug 2004 19:41

Re: Nach erreichen der Zeit --> löschen ?
 
hallo,

danke für eure hilfe, hab das von markus getestet und es klappt wunderbar
jetzt hätte ich noche eine frage wie würde der code ausschauen wenn
ich jetzt noch ein datum auch noch möchte, also zb: 20.08.2004 12:10

mfg vader

MrKnogge 14. Aug 2004 19:49

Re: Nach erreichen der Zeit --> löschen ?
 
einfach noch dein Datum mit DateToStr(Now) vergleichen.

Vader 14. Aug 2004 20:27

Re: Nach erreichen der Zeit --> löschen ?
 
hallo,

kannst du mir einen code posten, hab keine ahnung wie ich diese beiden abfragen datum und zeit zusammen hängen soll ?? :oops:

mfg vader

nailor 14. Aug 2004 20:29

Re: Nach erreichen der Zeit --> löschen ?
 
was ist bei der >= methode, wenn man 1ms vor mitternacht löschen will?

MrKnogge 14. Aug 2004 20:46

Re: Nach erreichen der Zeit --> löschen ?
 
Mit AND

Delphi-Quellcode:
if (formatdatetime('hh:mm',now)='13:06') and (DateToStr(Now) = '14.08.2004') then do
begin
   if fileexists('d:\aaa.txt') then deletefile('d:\aaa.txt');
end;

Vader 14. Aug 2004 22:40

Re: Nach erreichen der Zeit --> löschen ?
 
hallo,

herzlichen dank :P

mfg vader

Markus 15. Aug 2004 08:09

Re: Nach erreichen der Zeit --> löschen ?
 
Geht auch mit formatdatetime(). Schau dir dazu mal die Delphi-Hilfe der Funktion an. Die Funktion hat mehrere Parameter...


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:18 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