Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   "Datei aktualisiert" -> Abfragen (https://www.delphipraxis.net/73994-datei-aktualisiert-abfragen.html)

Sarahlin 26. Jul 2006 15:12


"Datei aktualisiert" -> Abfragen
 
Hallo alle zusammen,

ich möchte ein ganz einfaches Programm schreiben was überprüft ob eine Datei aktualisiert wurde und darauf eine Sounddatei als Hinweiston abspielt.

Hört sich einfach an, doch ich weiß nicht wie ich nun eine "Textformatierte" Datei abfragen kann ob sie schon modifiziert wurde.

Kennt sich da wer mit aus?

Luckie 26. Jul 2006 15:25

Re: "Datei aktualisiert" -> Abfragen
 
Bilde regelmäßig einen (MD5-)Hash und wenn der sich geändert hat, hat sich auch der Inhalt der Datei geändert. Alternativ könnte man auch das Änderungsdatum der Datei benutzen. Oder man überwacht das Verzeichnis mit einer API-Funktion, deren Name mir jetzt nicht einfallen will.

Sarahlin 26. Jul 2006 15:57

Re: "Datei aktualisiert" -> Abfragen
 
Naja der Inhalt der Datei wird meist gleich (statisch) bleiben, was mich interessiert ist eben das Änderungsdateum. Das er daran erkennt das die Datei gerade eben wieder gespeichert wurde.

Somit will ich wissen wie man in Delphi so eine Abfrage durchführen könnte die jede 1-2 Sekunden (timer1 schätze ich mal) die function zur Abfrage wiederholt.

Nur ich habe damals in der Schule einen Grundkurs mit Delphi gehabt, dort wurde uns beigebracht wie man Rechenprogramme und sowas schreibt, oder auch Daten speichert und ausliest.

Doch nicht wie man solche MD5 Hashes überprüft oder noch schlimmer, nachschaut ob sich das Änderungsdatum einer Datei geändert hat. Auch weiß ich nicht wie ich bei der Suche nach gewünschten Funktionen bei Delphi verfahren muss, damit ich nicht immer hier nachfrage.

RavenIV 26. Jul 2006 16:15

Re: "Datei aktualisiert" -> Abfragen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Es gibt die Möglichkeit, sich von Windows benachrichtigen zu lassen, wenn sich eine datei verändert hat.

Dazu gibt es etliche Delphi-Komponenten.
Such mal nach DirMonitor hier im Forum...

/edit:
ich hab noch einen DirMonitor bei mir auf der Platte gefunden.
Hänge diesen mal hier an.

Klaus01 26. Jul 2006 16:18

Re: "Datei aktualisiert" -> Abfragen
 
oder wenn Du es selber machen willst, in den SysUtils gibt es die Routine FileAge oder auch FileGetDate.
Die könntest Du für Dein Anliegen benutzen.

Zu MD5 Hashes gibt es im Web (md5.pas) oder auch hier in der DP Routinen.

Grüße
Klaus

shmia 26. Jul 2006 16:22

Re: "Datei aktualisiert" -> Abfragen
 
Zitat:

Zitat von Sarahlin
nachschaut ob sich das Änderungsdatum einer Datei geändert hat.

Delphi-Quellcode:
var
   dateialter : integer;
...
   if SysUtils.FileAge(dateiname) > dateialter then
       ...

Sarahlin 26. Jul 2006 19:26

Re: "Datei aktualisiert" -> Abfragen
 
Zitat:

Zitat von shmia
Zitat:

Zitat von Sarahlin
nachschaut ob sich das Änderungsdatum einer Datei geändert hat.

Delphi-Quellcode:
var
   dateialter : integer;
...
   if SysUtils.FileAge(dateiname) > dateialter then
       ...

Deine Methode kapiere ich jetzt nicht. Schon es scheint der Teil zu sein der die Datei überprüft. Aber woher soll mein Programm nun wissen welches FileAge die Datei zuvor hatte?

marabu 26. Jul 2006 19:30

Re: "Datei aktualisiert" -> Abfragen
 
Hi.

Du könntest dir das Alter der überwachten Datei in einer Variable merken, immer wenn es sich geändert hat.

Grüße vom marabu

Sarahlin 26. Jul 2006 19:41

Re: "Datei aktualisiert" -> Abfragen
 
Natürlich, aber ich kann das Alter nicht auslesen. Wenn ich FileAge auslese ist der Wert immer -1! Ich habe es gerade mal mit einem label1 Objekt porbiert und der Datei c:/test.txt

Delphi-Quellcode:
var
zahl: integer;
wert: string;

procedure TForm1.FormCreate(Sender: TObject);
begin
zahl := SysUtils.FileAge('c:\test.txt');
wert := IntToStr(zahl);
label1.caption := wert;
end;
Im Label steht dann leider nur "-1", die Datei besteht aber und ich habe sie schon einige male einfach verändert... doch es kommt immer als Antwort "-1" heraus.

Zielfunktion wäre:
Beim Formstart: "Alter bestimmen der Datei test.txt"
Beim Prüfen: "Das Vom Start bestimmte Alter mit der aktuellen vergleichen" oder "Das letzt Alter mit der aktuellen vergleichen"
Hat sich dann was geändert soll er ein Soundfile abspielen.

Luckie 26. Jul 2006 19:47

Re: "Datei aktualisiert" -> Abfragen
 
Delphi Hilfe lesen bildet. ;)
Zitat:

The return value is -1 if the file does not exist.


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

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