Autor Beitrag
JDommi
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 24.02.10 13:02 
Hallo zusammen!

Ich habe bei nachfolgendem Problem leider irgendwie das berühmte Brett vor dem Kopf :(
Ich muß zwei Verzeichnisse vergleichen, wobei die Dateinamen sich abhängig vom Erstellungsdatum unterscheiden und der Dateiinhalt auch nicht identisch ist.

Details:
Voraussetzungen:
1. Verzeichnis1 (tagesaktuell) für Datei1.pdf und Datei1.eps - neue Versionen überschreiben die alte
2. Verzeichnis2 (nicht tagesaktuell) für Datei2.xml - alte Versionen verbleiben im Verzeichnis

Vorgehensweise:
1. Datei1.pdf wird in Verzeichnis1 erstellt
2. Datei1.eps wird in Verzeichnis1 automatisch generiert
3. Datei2.xml wird in Verzeichnis2 erstellt (maximal 5 Minuten später)
wobei Datei2.xml = die ersten 5 Zeichen von Datei1.eps + Unterstrich + Erstellungszeit von Datei2 (Format: YYYYMMDDHHMMSS)

Prüfungen:
1. Existiert Datei1.eps in Verzeichnis1
2. Existiert Datei2.xml in Verzeichnis2
3. Ist Datei2.xml maximal 5 Minuten alt?

Fehler:
1. Datei1.eps fehlt
2. Datei2.xml fehlt
3. Datei2.xml ist jünger als Datei1.eps (letzte Version von Datei2.xml zählt nur)

Beispiel:
Verzeichnis1:
Data1.eps
Abcd2.eps
XYZ_3.eps
Name4.eps
Hilfe.eps
Verzeichnis2:
Data1_20100217225444.xml
Data1_20100218225323.xml
Data1_20100219221537.xml
Data1_20100219225601.xml
Abcd2_20100219225601.xml
XYZ_3_201002191925601.xml
Hilfe_20100219215601.xml

Das Programm, wie ich es im Moment habe, funktioniert leider nicht wie gewünscht...
Ich hoffe, daß ich das Ganze einigermaßen erklären konnte und mir hier jemand helfen kann.
Besten Dank schon mal im voraus!

JDommi

PS: bisheriger Source: mitglied.multimania....kdommi/hilfe/pdf.rar
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mi 24.02.10 16:32 
user profile iconJDommi hat folgendes geschrieben Zum zitierten Posting springen:
Ich muß zwei Verzeichnisse vergleichen, wobei die Dateinamen sich abhängig vom Erstellungsdatum unterscheiden und der Dateiinhalt auch nicht identisch ist.

Verstanden

user profile iconJDommi hat folgendes geschrieben Zum zitierten Posting springen:
Das Programm, wie ich es im Moment habe, funktioniert leider nicht wie gewünscht...
Ich hoffe, daß ich das Ganze einigermaßen erklären konnte und mir hier jemand helfen kann.
Besten Dank schon mal im voraus!

Wo ist denn genau das Problem?

Ob eine Datei existiert kriegst du raus über FileExists() und das Dateialter...hmm, das geht auch (nach 10sec suchen bei google) www.delphipraxis.net/topic3943.html

Edit:
Achso, da du ja nicht weißt wie die Dateien heißen kannst du entweder die Dateien alle mal angucken (Stichwort TSearchRec) oder alle möglichen Dateinamen überprüfen, ob es die datei gibt (=60*5 mögliche Dateinamen für 5min Differenz)...

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
JDommi Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 24.02.10 19:06 
user profile iconXion hat folgendes geschrieben Zum zitierten Posting springen:
Achso, da du ja nicht weißt wie die Dateien heißen kannst du entweder die Dateien alle mal angucken (Stichwort TSearchRec) oder alle möglichen Dateinamen überprüfen, ob es die datei gibt (=60*5 mögliche Dateinamen für 5min Differenz)...


Das Problem sind eigentlich gerade zwei:
1. Wie prüfe ich alle Möglichkeiten ohne diese 300 Abfragen?
2. Wie lasse ich "alte" Versionen dieser XML-Dateien (vom gleichen Tag!) unberücksichtigt?

Wie gesagt, habe da irgendwie ein Blackout.

JDommi
JDommi Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 24.02.10 20:15 
Sag's ja... Manchmal sieht man echt den Wald vor lauter Bäumen nicht mehr!

Die neueste "matching" Datei suchen und dann fileage vergleichen :x
So einfach geht das.

Thx und Thread closed