AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte kleines Backup-/Abgleichsproggie

kleines Backup-/Abgleichsproggie

Ein Thema von himitsu · begonnen am 2. Nov 2006 · letzter Beitrag vom 20. Jul 2007
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von himitsu
himitsu
Registriert seit: 11. Okt 2003
So, als Erstes: Wenn jemandem ein guter Name einfällt ... bitte melden -.-''
(aktuell hab ich ja nur das T aus'm Klassennamen weggelassen )



Tja was soll ich sagen, dat Teil ist noch nicht ganz fertig, aber der Hauptteil läuft anscheinend schonmal recht gut.
(ich würe es also daher noch mehr als ALPHA einstufen)

Das was noch nicht geht wurde deaktivert ... das betrifft aktuell die Dateisuche und eine der Optionen.


Was wäre noch zu sagen ...
  • es ist Unicodefähig, obwohl ich bis auf die VirtualTreeView und ein paar TntEdits nur die Delphi-VCL nutze
  • zum Dateivergleich wir 'ne eigene Klasse verwendet
    TDirectoryCompare, welche dann wenn der noch fehlende Teil läuft als OpenSource erscheinen wird.
  • Die Suche kann jederzeit gestoppt, oder pausiert werden.
  • in der Dateiliste verstecken sich 2 Popups
    Dat Eine hinter den Disketten und das ander im Rest
  • es gibt einige Optionen zum einstellen
    so kann man nicht nur anhand des Dateinamens und des Inhaltes vergleichen lassen
  • Das Zielverzeichnis (Destination) ist das Verzeichnis, welches abgelichen/verändert wird ... halt so wie es das Quellverzeichnis (Source) und die ausgewählten Optionen vorgeben
  • Die Einstellungen werden in 'ner INI im Programmverzeichnis gespeichert
  • Die Editfelder wo die Verzeichnisse ausgewählt werden reagieren auf vieles
    - Doppelklick = Verzeichnisauswahldialog (das Selbe wi bei den Buttons dahinter)
    - Drag&Drop
    - Autovervolständigung bei manueller Eingabe
  • Alles was Start (vorm Vergleich), oder später über das Popupmenü>Optionen... ausgewählt ist wird Abgeglichen
  • wenn Content nicht ausgewählt wurde, dann wird der Dateiiinhalt abhängig von der Dateigröße und dem Änderungsdatum abgeglichen
  • Es wird beim Dateidatum nur auf einen Unterschied geachtet und nicht welche Datei wirklich neuer ist
    (es wird vermutlich aber noch irgendwann eine Auswahl dafür eingebaut)


Zu den Bildern:
die sind nicht ganz neu und es hat sich vorallem in den Optionen was geändert (diese sind z.B. in 'nem eigenem Fenster drin), aber sonst sieht es noch fast genauso aus ^^

Die Bilder 8 und 9 stellen das selbe Suchergebnis dar ... einmal in meinem Progie und nochmal im Pegasus.


[add]
Und wen es interessiert, der findet in der ZIP einen einblick in die aktuelle Klassendefinition und ein paar Demos dazu ._.

[edit]
schlächtschreibung und neue Version
Angehängte Dateien
Dateityp: exe hsync_195.exe (1,08 MB, 73x aufgerufen)
Dateityp: zip directorycompareclass_894.zip (666,9 KB, 58x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
 
Benutzerbild von himitsu
himitsu

 
Delphi 10.2 Tokyo Professional
 
#2
  Alt 2. Nov 2006, 14:55
Und hier der Rest.
Miniaturansicht angehängter Grafiken
unbenannt3_197.jpg   unbenannt2_372.jpg   unbenannt1_466.jpg   directorycompare_205.jpeg  
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

 
Delphi XE8 Enterprise
 
#3
  Alt 3. Nov 2006, 21:22
Hallo,

nettes Tool. Ich habe bis jetzt noch keinen Fehler finden können. Da ich gerade an einem eigenen Tool programmiere, ist meine Frage, welche Komponente hast Du für die Synchronisationsliste genommen ?
Rolf Warnecke
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 10.2 Tokyo Professional
 
#4
  Alt 6. Nov 2006, 11:13
Ich hab 'ne eigene Klasse dafür genommen.
Diese Vergleicht alles und stellt die Dateiliste bereit.
Das Programm selber zeigt dann nur noch das Ergebnis an und arbeitet die Einträge.

Der Abgleich läuft dann einfach (von Hand) direkt über CreateFile wobei dort dann ales andere (Attribute, Zeiten...) ebenfalls direkt über die entsprechenden API-Befehle laufen. (also kein CopyFile und so)


---------------------------------------------------------------------

Wobei mein Hauptaugenmerk eigentlich auf der Vergleichs-Klasse liegt und das hier mehr "nur" ein Nebenprodukt ist.

Dennoch wurde mal etwas geändert.

- ein Problem beim Datumsabgleich wurde behoben
('s gibt halt zwei verschiedene Funktionen für Dateien und Verzeichnisse und deren Aufruf konnte durcheinandergeraten und es hätte sich dann die falsche Fnktion mit 'nem Fehler gemeldet)

- ein Job- und ein Parametersystem sind jetzt mit drin
(ist beides unter Jobs zu finden)

- der AutoStart fehlt "noch" ... was per Parameter übergeben wird wird "nur" in den StartDialog eingetragen.
Was es für Parameter gitb kann man sich im StartDialog unter Jobs > Parameter... ansehen und passend aus den Daten im StartDialog zusammenstellen lassen

- das Sortieren der Liste wurde beschleunigt
(bei meinen knapp 25.000 Dateien/Verzeichnissen von etwa 5 auf 1,5 Sekunden)

- und noch ein paar kleine andere Dinge (wie z.B. einiges im Popup der Dateiliste)

- mir fehlt immernoch ein "guter, netter, schöner ..." Name

PS: mehrere Verzeichnisse könnte man z.B. über eine Batchdatei abgleichen.
Eine Erweiterung auf mehrere Verzeichnisse (im Programm) ist derzeit nicht vorgesehen und die Klasse selber wird immer nur 2 Verzeichnisse vergleich.
Theoretisch könnte man aber auch mehrere Instanzen der Klasse laden und wenn sie fertig ist kann sich ja auch jemand anderes an soeine Verwirklichung setzen ... Demoprograme gibt's ja zu genüge. (die Klasse wird ja mal als FreeWare rauskommen)




Was ich noch vergaß zu sagen:

- die Dateien werden Speichersparend abgeglichen, also zuerst alle zulöschenden, kleineren und gleichgroßen Dateien

- da 64-Bit sind auh Dateien über 2 GB kein Problem

- Drag&Drop: man muß nicht unbedingt nur das EINE Verzeichnis auf das gewünschte Editfeld ziehen.
Es wird jeweils der erste gültige Eintrag genommen, wobei tzuerst nach gültigen Verzeichnissen gesucht wird und danach werden die "Eltern"-Verzeichnisse der übergebenen Dateien durchgesehen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 10.2 Tokyo Professional
 
#5
  Alt 7. Nov 2006, 12:15
- Ordnerauswahldialoge überarbeitet.
- ShortCuts verbessert und weitere hinzugefügt
- neue Hints
- vorhandene Hints werden per Mauszeiger signalisiert
- Popups geändert (vorallem der große in der Dateiliste)
- die beiden Debugspalten wurden wieder entfernt (nicht daß sich noch wer über die letzen Zahlen der Dateiliste wundert)
...

- und die Option Name (hatte es vergessen zu sagen) überprüft "nur" die Groß-/Kleinschreibung
(größere Namensänderungen werden derzeit noch einzeln gehandelt ... also neue Datei und Gelöschte)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 10.2 Tokyo Professional
 
#6
  Alt 17. Nov 2006, 12:42
So, doch nochmal was Neues...

- 'n kleiner Fehler bei nicht existierenden Ziel- und Quellverzeichnissesn behoben.
(hatte sich bei der Umstellung in volle/lange Dateinamen eingeschlichen und dann ausversehen das Programmverzeichnis genutzt )

- relatieve Pfade werden jetzt besser unterstützt

- die Verwaltung vieler Dateien wurde beschleunigt (bei mir wurde es so ab 100.000 Dateien zum Ende hin recht langsam )

- ansonsten hatte sich nur noch intern einiges kaum Bemerkbares geändert.




Die Verzeichnisüberwachung läuft immernoch nicht ... Windows unterschlägt mir derzeit noch ein Ereignis und wie ich die Änderungen in das aktuelle Scanergebnis einarbeiten soll ist auch noch nicht ganz klar (ohne ständig alles neu/komplett ans Programm / in die Dateiliste übergeben zu müssen)

[add 23.11.06]
ä bissl was an der INI und der internen Verarbeitung geändert.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 10.2 Tokyo Professional
 
#7
  Alt 28. Dez 2006, 13:24
Hab inzwischen mal wieder was geändert,
und hier schonmal eine winzige Vorschau für's nächste Jahr...

!! Achtung: das Vergleichen läuft schonmal ganz gut,
aber beim Abgleich bin ich noch nicht fertig (Streams fehlen komplett und beim Kopieren der Dateiinhalte könnten noch Fehler auftreten, hab halt noch nicht alles getestet ... obwohl "Default I/O", also über das normale ReadFile/WriteFile vermutlich alles korrekt laufen sollte).

Darum ist auch der Download in diesem Beitrag und nicht dort oben


so wurden unter anderem Streams nachgerüstet,
die Dateisuche und davon abhängige Funktionen funktionieren nun ebenfalls,
die Statistik (siehe Bild) zählt jetzt auch richtig und es gibt nun eine KurzÜbersicht in der Statusbar.

Dann wurden vorallem die Dateioperationen (Lesen und Schreiben) komplett umgerüstet. :engel:


Die Funktion zur Überwachung der Verzeichnisse (Option "") ist zwar schon aktiv, aber nicht funktionsfähig ... die auftretenden Veränderungen werden zwar erkannt, aber noch nicht in die aktive Dateiliste eingetragen.




Was mich jetzt aber erstmal interesseiert,
wäre eventuelle Verbesserungsvorschläge
und ob der Vergleich auch richtig funktioniert.


Vorgesehen und teilweise schon eingebaut sind z.B.
- ein automatischer abgleich ... zusammen mit der Verzeichnissüberwachung können dann in einen beliebigem Intervall die Daten abgeglichen werden
- natürlich die Verzeichnissüberwachung (also diese fertigstellen)
- und eine nettes Fenster, wo man sich dann die beiden Dateien ansehen und den Unterschied betrachten.

- ein Abgleich der Sicherheitsattribute ist nicht vorgesehen
- ebenso wird es beim vergleich von "nur" 2 Verzeichnissen bleiben ('s wird halt von der klasse nicht unterstützt und mehrere Instanzen hab ich nicht vor zu implementieren)

was inzwischen schon drin ist:
- die Dateieigenen Icons sind jetzt auch integriert, diese müssen aber im PopupMenü aktiviert werden.
- in dem Popupmenü und über die Tastenkürzel sind wietere "neue" Funktionen verfügbar
- und im Optionsdialog hat sich auch einiges geändert.
- was die Parameter angeht, da sind eigentlich alle über den ParamsDialog erkennbar
- schnellere/optimalere Dateioperationen (z.B. die aus dieser Demo )


[add]
Download vergessen

Ach ja, die Klasse sieht schonmal recht aufgeräumt aus ...
und wenn der Verzeichnissüberwachung läuft, dann steht einer Veröffentlichung nichts entgegen (auch wenn es fast keine Kommentare gibt ._. )
Miniaturansicht angehängter Grafiken
h-sync_-_streams_157.jpg  
Angehängte Grafiken
Dateityp: jpeg h-sync_-_storage_207.jpeg (964,9 KB, 60x aufgerufen)
Angehängte Dateien
Dateityp: exe hsync_162.exe (1,09 MB, 13x aufgerufen)
  Mit Zitat antworten Zitat
Sascha L

 
Delphi 2006 Professional
 
#8
  Alt 28. Dez 2006, 14:14
Hast du das hier:

Zitat:
Die Einstellungen werden in 'ner INI im Programmverzeichnis gespeichert
schon geändert? Ich hoffe doch! Im Programmverzeichnis speichert man nichts!
Sascha
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 10.2 Tokyo Professional
 
#9
  Alt 29. Dez 2006, 10:39
Im Moment noch nicht, denn eigentlich ist es nicht schlecht, daß sich EXE und INI im selben Verzeichnis befinden.

Vermutlich wird es aber mal einen Parameter geben, wodurch die INI dann im Userverzeicnis landet, oder gar alles in der Registry.


Bei mir läuft daß Programm auf dem USB-Stick und wird auf mehreren Rechnern genutzt ... es wäre also schlecht, wenn ich daheim was einstelle und wo anders dieses nicht verfügbar ist, weil es ja im Userverzeichnis, oder der Registry eines anderen PCs gespeichert wurde.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 10.2 Tokyo Professional
 
#10
  Alt 9. Jan 2007, 18:52
hmm, vor 'ner Weile kamen plötzlich abundzu solche Meldungen,
allerdings zufälliger Weise immer nur außerhalb des Debugers
und daher weiß ich auch nicht wo und warum das passiert.

Zitat:
---------------------------
hSync.exe - Fehler in Anwendung
---------------------------
Die Anweisung "0x00487eb8" verweist auf Speicher bei "0x00487eb8". Die Daten wurden wegen eines E/A-Fehlers in "0x00000000000000000000000000000000000000000000000 00000000000000000000000000c0000098" nicht in den Arbeitsspeicher bertragen.


Klicken Sie auf "OK", um das Programm zu beenden.
Klicken Sie auf "Abbrechen", um das Programm zu debuggen.
---------------------------
OK Abbrechen
---------------------------
falls jemand 'ne Ahnung hat, was das darstellen soll, der mßte sich bitte mal Melden.

Dat 0x00487eb8 is zwar 'ne Stelle mitten im Programm, nur welche genau konnte ich nicht rausfinden, vorallem da sich inzwischen ja schonwieder etwas am QuellCode geändert hat.


In letzter Zeit ist dieses zwar nichtmehr aufgetaucht, aber mich würde es dennoch interessieren was Windows damit gemeint hatte, vorallem da es in der oben verlinken Version auftritt.
Aber anscheinend hatte noch kein Anderer diese Meldung gesehen?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf