Event bei Schreibvorgang/Größenänderung einer Datei

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
magnat
User
Beiträge: 3
Registriert: Freitag 17. Februar 2006, 14:10

Event bei Schreibvorgang/Größenänderung einer Datei

Beitragvon magnat » Montag 18. September 2006, 08:48

Hallo zusammen,

ich möchte aus einer (csv)-Datei Werte auslesen und diese visualisieren. Diese Datei wird in mehr oder weniger regelmässigen Abständen (ca. 100 ms) aktualisiert (d.h. die Datei wächst).
Ich könnte jetzt natürlich in einer Schleife die Dateigröße abfragen und daraus schließen ob neue Werte hinzugekommen sind, jedoch finde ich das nicht gerade elegant und ausserdem wird durch das Pollen das System recht stark ausgelastet.
Gibt es nun die Möglichkeit (ich habe bisher vergeblich gesucht), dass ein Event ausgelöst wird, wenn sich die Dateigröße ändert bzw. ein Schreibzugriff stattgefunden hat? Ein Windows-Explorer-Fenster checkt ja recht schnell, wenn etwas auf dem Laufwerk passiert. Prinzipiell müsste also etwas in der Art in Windows schon vorhanden sein.

Für jegliche Hilfe bin ich sehr dankbar.

H.V.
BlackJack

Beitragvon BlackJack » Montag 18. September 2006, 19:19

Ich denke es sprechen mehrere Gründe gegen so eine Lösung. Zum Beispiel wächst die CSV Datei, um den letzten Datensatz auszulesen musst Du aber immer die komplette Datei lesen, weil man Zeilen in Textdateien im allgemeinen nicht direkt anspringen kann.

Und Du musst immer mit berücksichtigen, das es sein kann, dass der benachrichtigte Prozess durch irgend einen Umstand behindert oder verzögert wird, so dass sich das Auslesen mit dem nächsten Schreibzugriff auf die Datei überschneidet.

Ansonsten dürfte Polling gar nicht so teuer sein. Es muss ja nur auf das Dateidatum geprüft werden und da diese Datei in so regelmässigen und kurzen Abständen verändert wird, sind die nötigen Daten immer im RAM.

Falls Du auch Kontrolle über den schreibenden Prozess hast, würde vielleicht eine Interprozesskommunikation in Frage kommen. XML-RPC oder so.
Nirven
User
Beiträge: 130
Registriert: Mittwoch 10. Mai 2006, 08:18
Wohnort: Bremerhaven

Beitragvon Nirven » Dienstag 19. September 2006, 07:15

Hm, grundsätzlich muss sowas schon irgendwie gehen. Mit less zum Beispiel kann ich mir wachsende Logzeilen in Echtzeit angucken, sicher auch mit anderen Programmen. Probleme gibt es eigentlich nur, wenn die Datei zwischendurch truncated wird.
Es sollte also funktionieren, bei dem wie... :K

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder