![]() |
Re: Pegasus: Einfaches backup Programm
Danke für das feedback. *unter den schreibtisch kriecht, um sein Pflege kaninchen Gipsy zu knuddeln*
|
Re: Pegasus: Einfaches backup Programm
Hi,
ich finde das Programm grundsätzlich von der Idee her sehr nützlich, werde es aber aus Zeitmangel erst nachher testen, gleich mit einem "Ernstfall", nämlich geänderten Quelltext vom Laptop auf meinen PC übertragen. Mir ist im Screenshot aufgefallen, dass es anscheinend keine Möglichkeit gibt, sich die Unterschiede in den geänderten Dateien anzeigen zu lassen. Das fände ich noch eine super Funktion :) cu |
Re: Pegasus: Einfaches backup Programm
lässt sich die Geschwindigkeit noch optimieren? *duck*
In einem Ordner mir 2000 Dateien ist das Prg ganz schön beschäftigt. ca. 60 Sek *offtopic an*Zur Zeit benutze ich rsync welches im Cygwin mit dabei ist. Dieses Prg läuft wesentlich schneller. Lässt sich aber halt nur aus der Konsole starten. Was aber nicht schlimm ist. Eine Batch-Datei erstelllen und fertig.*offtopic aus* |
Re: Pegasus: Einfaches backup Programm
Hi,
Deine beiden Datei-Such Prozeduren sind verbesserungswürdig. Als erstes müsstest Du die Delphi-Version spezifischen Hinweise beachten und ggf. Code, der nur für Delphi 4 und niedriger vorgesehen ist, entfernen. ;) Auch ähnlich sich die beiden Prozeduren, sodass man sie auf folgende Weise zusammenfassen könnte. Du gestaltet ein Event, z.B.
Delphi-Quellcode:
Deine Suchprozedur änderst Du zu so einer:
type
TOnFindFile = procedure(const FileName: string) of object;
Delphi-Quellcode:
Und in die beiden OnFileFind Events, die Du implementieren musst, schreibst Du einfach den Code rein, den Du bisher seperat in den beiden Prozeduren verteilt hattest. Ggf. musst Du noch die Paramterliste ergänzen, falls Du im Event noch andere / weitere Informationen brauchst.
procedure FindFiles(RootFolder: string; OnFindFile: TOnFileFind; Mask: string = '*.*'; Recurse:
Boolean = True); var SR: TSearchRec; s1, s: string; begin Application.ProcessMessages; if bCanceled then Exit; if RootFolder = '' then Exit; // Implementation ab Delphi 5 RootFolder := IncludeTrailingPathDelimiter(RootFolder); if Recurse then if FindFirst(RootFolder + '*.*', faAnyFile, SR) = 0 then try repeat if SR.Attr and faDirectory = faDirectory then // --> ein Verzeichnis wurde gefunden // der Verzeichnisname steht in SR.Name // der vollständige Verzeichnisname (inkl. darüberliegender Pfade) ist // RootFolder + SR.Name if (SR.Name <> '.') and (SR.Name <> '..') then FindFiles(RootFolder + SR.Name, Mask, Recurse); until FindNext(SR) <> 0; finally FindClose(SR); end; if FindFirst(RootFolder + Mask, faAnyFile, SR) = 0 then try repeat if (SR.Attr and faDirectory <> faDirectory) and (Assigned(OnFileFind)) then OnFileFind(RootFolder + SR.Name); until FindNext(SR) <> 0; finally FindClose(SR); end; end; Ich hoffe, dass ich Dir damit einen kleinen Ansatzpunkt zur Verbesserung geben konnte :) mfG mirage228 |
Re: Pegasus: Einfaches backup Programm
Das ändert nichts an der Tatsache, dass ich so wohl das Source Verzeichnis durchsuchen muss, als auch das Backup Verzeichnis oder habe ich da jetzt einen Denkfehler?
|
Re: Pegasus: Einfaches backup Programm
Zitat:
mfG mirage228 |
Re: Pegasus: Einfaches backup Programm
OK, das wär eine Optimierumng des Codes. Bringt aber nichts an Performance.
|
Re: Pegasus: Einfaches backup Programm
Hi,
wie versprochen hab ich nun das Programm getestet, als Quelle diente eine Netzwerkfreigabe und als Ziel mein lokaler Ordner. Das funktionierte soweit problemlos. Wie von anderen schon erwähnt braucht das Programm aber recht lange bei großen Ordnern. Vielleicht könnte man vor dem eigentlichen Vergleichen eine Prüfsumme wie CRC32 erstellen, da muss nicht so viel von der Datei gelesen werden AFAIR, das spart Bandbreite (beim Netzwerkvergleichen)/bringt Performance. Wenn du an der Idee gefallen findest, kann ich dir gerne den nötigen Code zum CRC32-berechnen zukommen lassen. Kritik: - Das Programm "flasht" in der Taskleiste, auch wenn es im Vordergrund ist (also das aktive Fenster). Sollte so ja nicht sein, denke ich? Vorschläge: - Wenn sich Dateien ändern würde ich ein anderes Icon nutzen, als das grüne Plus, was ja auch für komplett neue Dateien verwendet wird. - Dateien vom Vergleichen ausschließen wäre nett (z.B. *.dcu ;)) - Automatisch abgleichen und mehrere Ordner zum abgleichen angeben, alternativ halt Parametersupport und 'ne Batch-Datei, ist aber nicht so schön. Kommt noch eine Hilfedatei zu dem Programm? cu |
Re: Pegasus: Einfaches backup Programm
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: Pegasus: Einfaches backup Programm
Hi,
nunja, das Flashen sollte aber nur dann eintreten, wenn das Programm nicht im vordergrund ist. Also if (not Application.Active) then ;). Die Sache mit den Jobs hört sich gut an. Der Vorschlag war, ein anderes Icon zu benutzen um den Unterschied zu kennzeichnen. War das unklar formuliert? Finde es eigentlich verständlich ;). cu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz