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



BeitragVerfasst: Do 10.10.02 21:24 
Hi Leute!

Ich muss ein Programm schreiben, welches Dateien synchronisiert ohne das Dateidatum zu vergleichen, da es sein kann, das Betriebsysteme asynchron laufen können. Hat jemand eine Idee, wie ich herausfinden bei einem Dateiabgleich von Dateíen die "bessere" ist. Wäre über ein mal Vorschläge sehr erfreut.
lee Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 10.10.02 21:26 
sorry für die Rechtschreibfehler...war gerade abgelenkt...Essen... :oops:
SMI
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106

Win95-2003 / Debian / Suse
D1/D3/D6/D7
BeitragVerfasst: Do 10.10.02 23:30 
Hallo,

Verstehe ich dein Frage richtig, du willst z.B. zwei Verzeichnisse Synchronisieren.
So was habe ich schonmal gemacht, finde den Quellcode aber nicht mehr. Am einfachsten ist es mir Rekursiv mit FindFirst / FindNext rekursiv alle Dateien innerhalb des Verzeichnis in einer Liste zu sammeln, dann sortiert man diese Liste, macht eine Kreuzüberprüfung mit allen verfügbaren Parametern und weiß dann welche Dateien neu sind bzw. fehlen. Alternativ kannst du zu jeder Datei eine CRC Quersumme erstellen und dann die Quersummen vergleichen, ist etwas aufwändig aber sehr effektiv. Näheres dazu findest du unter www.efg2.com/lab dort gibt es das Beispiel FileCheck, was Dateiänderungen via CRC Quersummen erkennen kann.

SMI

_________________
Wenn es im Jahre 1879 schon Computer gegeben hätte, würden diese vorausgesagt haben, daß man infolge der Zunahme von Pferdewagen im Jahre 1979 im Pferdemist ersticken würde.
(John C. Edwards, brit. Zukunftsforscher)
lee Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Fr 11.10.02 21:31 
ja, genau. Wäre echt cool, wenn du den quellcode finden könntest. Dein Link funzt nicht. Leider!

Vielen Dank für die Antwort.
SMI
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106

Win95-2003 / Debian / Suse
D1/D3/D6/D7
BeitragVerfasst: Sa 12.10.02 02:50 
Sorry,

müsste folgender maßen auten:
www.efg2.com/Lab/Mathematics/FileCheck.htm

SMI

_________________
Wenn es im Jahre 1879 schon Computer gegeben hätte, würden diese vorausgesagt haben, daß man infolge der Zunahme von Pferdewagen im Jahre 1979 im Pferdemist ersticken würde.
(John C. Edwards, brit. Zukunftsforscher)
lee Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: So 13.10.02 00:38 
Vielen Dank! Ich finde es aber ziemlich kompliziert. Hast du vielleicht nicht doch den Quellcode von deinem "Synchronisations-Programm"? Wäre echt sehr nett von dir.


"Am einfachsten ist es mir Rekursiv mit FindFirst / FindNext rekursiv alle Dateien innerhalb des Verzeichnis in einer Liste zu sammeln, dann sortiert man diese Liste, macht eine Kreuzüberprüfung mit allen verfügbaren Parametern und weiß dann welche Dateien neu sind bzw. fehlen."

Das war aus deiner ersten Antwort.Kannst du vielleicht etwas näheres zu deinem Vorgehen sagen. Rekursiv in eine Liste sammeln, ok! Sortieren, wie? und wieso? Kreuzüberprüfung? mit allen verfügbaren Parametern???

Warte dringend auf deine Antwort!

Cu
SMI
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106

Win95-2003 / Debian / Suse
D1/D3/D6/D7
BeitragVerfasst: So 13.10.02 19:30 
Hallo,

auf meine Festplatte hab ich nur noch Fragmete des Quellcodes, den kompletten hab ich irgendwo auf einer CD gesichert. Wenn ich Zeit habe duchsuch ich die mal. Die nächsten Wochen werden bei mir voraussichtlich sehr stressig, daher kann ich nichts versprechen.

Du wolltest wissen warum ich sortiere. Du hast ja zwei Listen, die eine vom dem Inhalt des "Quell"-Verzeichnis(A) und eine vom Inhalt des zu synchronisierenden Verzeichnisses(B). Damit man die schneller Überprüfen kann, welche Dateien fehlen / vorhanden sind, sortiere ich die Listen nach Dateipfaden. Danach führe ich eine Kreuzüberprüfung (A wird mit B und B mit A verglichen) durch, dadurch weiß ich welche Dateien in beiden Listen identisch sind, und welche in A fehlen und welche in B fehlen.
Da ich mit einer Pointerliste gearbeitet habe, habe ich den Rückgabewert von FindFirst/FindNext im Speicher abgelegt und hatte somit Zugriff auf alle Parameter, die zurückgegeben wurden.

SMI

_________________
Wenn es im Jahre 1879 schon Computer gegeben hätte, würden diese vorausgesagt haben, daß man infolge der Zunahme von Pferdewagen im Jahre 1979 im Pferdemist ersticken würde.
(John C. Edwards, brit. Zukunftsforscher)
lee Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: So 13.10.02 21:04 
Vielen Dank für die schnelle Antwort. Ich hoffe du findest den Quellcode! Ich zähle auf dich. Dann fang ich mal mit der Oberfläche an.

bis demnächst