Delphi-PRAXiS
Seite 1 von 2  1 2      

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 13: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 13:20

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

Stunden : Minuten : Sekunden

angeben, nicht nur

Stunden : Minuten

Sharky 14. Aug 2004 13: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 13: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 13: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 13: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 13: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 13: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 13: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 13: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:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:49 Uhr.
Seite 1 von 2  1 2      

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