Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Regelmässig auf vorhandene Dateien prüfen (https://www.delphipraxis.net/200155-regelmaessig-auf-vorhandene-dateien-pruefen.html)

H.Bothur 31. Mär 2019 12:43

AW: Regelmässig auf vorhandene Dateien prüfen
 
Nur als Feedback - ich habe es jetzt kurz gehalten und über einen Timer realisiert - klappt hervorragend.

Gruß
Hans

DieDolly 31. Mär 2019 13:30

AW: Regelmässig auf vorhandene Dateien prüfen
 
Bei einem Timer darfst du eine Sache nicht vergessen. Nur als Beispiel. Wenn dein Timer ein Intervall von 60 Sekunden hat und die Codeausführung in deinem Timer aber 59 Sekunden dauert, dann geht der Timer nach einer Sekunde wieder los.

Rollo62 1. Apr 2019 08:35

AW: Regelmässig auf vorhandene Dateien prüfen
 
Zitat:

Zitat von DieDolly (Beitrag 1429179)
Bei einem Timer darfst du eine Sache nicht vergessen. Nur als Beispiel. Wenn dein Timer ein Intervall von 60 Sekunden hat und die Codeausführung in deinem Timer aber 59 Sekunden dauert, dann geht der Timer nach einer Sekunde wieder los.

richtig, und was passiert wenn bei 60sec. Timer nach 10 Sec. jemand eine Datei anlegt und nach 20 Sec. wieder löscht ?

Delphi.Narium 1. Apr 2019 08:54

AW: Regelmässig auf vorhandene Dateien prüfen
 
Dann sollte man erstmal definieren, welche Dateien man warum benötigt.

Sollen alle Dateien, die beim Timeraufruf (oder jeder beliebigen sonstigen Prüfung) vorhanden sind, verarbeitet werden?

Oder sollen alle Dateien verarbeitet werden, auch wenn deren Existenz nur auf Sekunden (oder gar weniger) begrenzt ist?

Die Aufgabenstellung passt eigentlich gut zu dem Schema:
  • Prozess X legt (mehr oder weniger) sporadisch Dateien in einem definierten Verzeichnis ab.
  • Prozess Y soll alle Dateien aus diesem Verzeichnis verarbeiten.
Was wäre denn, wenn eine Datei erstellt wird.
Die Prüfroutine stellt dies fest und verarbeitet die Datei.
Die Datei wird wieder gelöscht, weil sie irrtümlich, fehlerhaft ... ins Verzeichnis gelangte?

Sprich: Das Timerereignis fällt in genau diesen Zeitraum
Zitat:

Timer nach 10 Sec. jemand eine Datei anlegt und nach 20 Sec. wieder löscht?
Müssen auch diese Dateien verarbeitet werden?
Oder muss die Verarbeitung gelöschter Dateien wieder rückgängig gemacht werden?

Es ist egal, wie man prüft, man wird immer ein Problem in der Verarbeitungsfolge finden, wenn man diese nicht vorher definiert, sondern jeder irgendwie selbst interpretieren kann, was er unter der Aufgabenstellung verstehen / vermuten möchte.

Oder aber auch: Solange die Aufgabenstellung nicht präzisiert wird, wird man für jeden Vorschlag mindestens einen Grund finden, warum er nicht geeignet ist.

freimatz 1. Apr 2019 11:20

AW: Regelmässig auf vorhandene Dateien prüfen
 
Für die Aufgabenstellung von Hans passt es wohl
Zitat:

Zitat von H.Bothur (Beitrag 1429175)
klappt hervorragend.

Ich persönlich würde bei so nem asynchronem Zeug sowas nie schreiben :wink:

Andreas L. 2. Apr 2019 10:53

AW: Regelmässig auf vorhandene Dateien prüfen
 
Es gibt von Windows API-Funktionen dafür:
Die Jedis haben eine Komponente dafür: http://wiki.delphi-jedi.org/wiki/JVC...JvChangeNotify

Wenn du es selbst entwickeln willst, würde ich an deiner Stelle einen Thread statt einen Timer verwenden.

DieDolly 2. Apr 2019 13:16

AW: Regelmässig auf vorhandene Dateien prüfen
 
Zitat:

richtig, und was passiert wenn bei 60sec. Timer nach 10 Sec. jemand eine Datei anlegt und nach 20 Sec. wieder löscht ?
Ein ganz billiger Workaround wäre, den Timer im Timerevent selber am Anfang auf Enabled False zu stellen und am Ende wieder auf Enabled True. Das sollte das Intervall zurücksetzen.

Luckie 2. Apr 2019 18:44

AW: Regelmässig auf vorhandene Dateien prüfen
 
Warum sucht ihr jetzt für eine erwiesenermaßen schlechte Lösung eine Verbesserung, die es auch nicht besser macht? :roll:

DieDolly 2. Apr 2019 18:59

AW: Regelmässig auf vorhandene Dateien prüfen
 
Der Themenersteller will wohl nur diese schlechte Lösung benutzen und keine bessere.

Rollo62 2. Apr 2019 19:23

AW: Regelmässig auf vorhandene Dateien prüfen
 
Die unten angegebene API wäre der richtige Workaround


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:52 Uhr.
Seite 2 von 3     12 3      

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