Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Solange warten bis Bedingung erfüllt ist? (https://www.delphipraxis.net/205897-solange-warten-bis-bedingung-erfuellt-ist.html)

Lion 28. Okt 2020 15:02

Delphi-Version: 7

Solange warten bis Bedingung erfüllt ist?
 
Hallo zusammen,

irgendwie komme ich nicht auf die Idee wie ich in einer Schleife auf die Erfüllung einer Bedingung warten kann? Ich habe also folgendes vor: ich kopiere nacheinander jeweils 3 Dateien in ein Verzeichnis, aber nur mit der Bedingung, dass das Verzeichnis leer ist. Ist das der Fall dann werden 3 Dateien reinkopiert, danach muss ich warten bis sie von jemanden ausgeschnitten werden. Ist das Verzeichnis wieder leere, dann werden die nächsten 3 Dateien reinkopiert usw.

Wie mache ich das am schlausten?
Danke für die Tipps!

Gausi 28. Okt 2020 15:07

AW: Solange warten bis Bedingung erfüllt ist?
 
Ich würde das mit einem Timer machen. Intervall auf eine sinnvolle Dauer stellen (1 Sekunde? 10 Sekunden? 1 Minute?). Im OnTimer-Event das Verzeichnis checken und ggf. neue Dateien reinkopieren.

Sauberer wäre es ggf., wenn derjenige, der die Dateien aus dem Verzeichnis rausnimmt, dein Programm darüber benachrichtigt. Aber dazu müsste man mehr darüber wissen, was du wie tust.

BlueStarHH 28. Okt 2020 17:21

AW: Solange warten bis Bedingung erfüllt ist?
 
Ich werfe mal die Win-API-Funktionen FindFirstChangeNotification und ReadDirectoryChangesW in den Raum.

Rollo62 28. Okt 2020 17:44

AW: Solange warten bis Bedingung erfüllt ist?
 
Habe vor zig Jahren mal mit SHChangeNotifyRegister was gemacht.
Funktionierte hervorragend, kann aber leider nichts zur aktuellen Win10 Version sagen.
Ich gehe mal davon aus das es noch gut funktioniert.

Lion 30. Okt 2020 13:03

AW: Solange warten bis Bedingung erfüllt ist?
 
Hallo,
vielen Dank!
Mir hat jetzt die Schleife
Delphi-Quellcode:
repeat
// ...
until z = y;
gepasst. Und gleich eine Frage dazu: kommt ich mit einem Exit; aus dieser Schleife heraus?

Poelser 30. Okt 2020 13:12

AW: Solange warten bis Bedingung erfüllt ist?
 
Nein, Exit verläßt die gesamte Prozedur, in der sich der Code befindet.
Was du suchst, heißt Break.

LG aus dem hohen Norden, Edmund

Lion 30. Okt 2020 13:52

AW: Solange warten bis Bedingung erfüllt ist?
 
Ok, super! Exit passt dann sehr gut, denn ich muss ganz raus.

zeras 30. Okt 2020 15:18

AW: Solange warten bis Bedingung erfüllt ist?
 
Du kannst natürlich auch z und y gleich setzen:-D


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