Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Pegasus: Luckies persönliches Synchronisationstool (https://www.delphipraxis.net/41226-pegasus-luckies-persoenliches-synchronisationstool.html)

Luckie 28. Feb 2005 03:11


Pegasus: Luckies persönliches Synchronisationstool
 
Liste der Anhänge anzeigen (Anzahl: 2)
Und zwar geht es darum, wenn man ein transportables Speichermedium benutzt, möchte man das eventuell mit einem Verzeichnis auf der Festplatte synchronisieren. Jetzt könnte man es sich einfach machen und einfach das entsprechende Verzeichnis auf dem USB Stick löschen und das von der Festplatte auf den USB Stick kopieren. Nun ist das natürlcih nicht sehr elegant und für den USB Stick nicht sehr schön, da solche Speichermedien nur begrenzt beschrieben werden können. Lese- und Schreibzugriffe sollten also auf ein Mindestmaß reduziert werden.

Hier kommt mein Programm ins Spiel, das mag es zwar schon geben, aber was soll's. Mein Programm stellt jetzt also zwei Dateilisten zusammen. Die erste Liste beinhaltet die Dateien, die kopiert werden müssen, weil sie im Zielverzeichnis nicht existieren oder weil sie geändert wurden. Und eine Dateiliste mit zu löschenden Dateien, die im Quellverzeichnis nicht mehr existieren. Ergebnis soll sein, dass die Verzeichnisse auf der Festplatte und auf dem USB Stick später identisch sind.

Das Programm befindet sich im Anhang. Bedinung und Ergebnis sollten selbst erklärend sein. "d:\Dokumente" ist bei mir zum Beispiel das Verzeichnis in dem ich arbeite und "I:\eigene Dateien\2005-01-27\Dokumente" wäre mein Backupverzeichnis mit dem ich es synchronisieren will. Am Ende sollen dann beide Ordner "Dokumente" identisch sein.

Version: 0.1.0.1 vom 2005-06-02@0:50
Erste funktionstüchtige Version. Bitte mal testen, ob irgendwelche schwerwiegenden Macken auftreten.

Version: 0.1.0.2 vom 2005-06-02@12:00
Selber einen Bug gefunden. :roll:

Version: 1.0.0.1 vom 2005-06-04@00:58
Langsam wird es brauchbar. ;)
Neues Feature: Jobs. Man kann jetzt Abgleiche von Verzeichnissen abspeichern, so das sman nicht immer die passendne Ordner manuell auswählen muss.

Version: 1.2.0.0 vom 2005-06-11@15:10
Multithreading implementiert
TPegasus-Klasse mit Events ausgestattet
Anzeigen der aktuellen Dateinamen in der Statuszeile

Version: 1.3.0.0 vom 2005-06-13@13:16
Nur geänderte Dateien haben jetzt ein orangenes/braunes ( :? ) Plus

Version: 1.5.0.0 vom 2006-06-24
Skiplist implementiert. Gibt es in der Ini-Datei eine Sektion "SkipList", werden die Ordner und Unterordner in dieser Sektion beim Abgleich ignoriert:
Code:
[Skiplist]
0=D:\Homepage\luckie-online\forum
Jetzt auch mit Sourcecode im Archiv.

Luckie 28. Feb 2005 18:03

Re: Bitte mal testen: Programm zum Synchronisieren von Ordne
 
Es ist ja sehr schön, dass ihr euch zu mindest den Screenshot anguckt. Wichtiger wäre es mir allerdings, wenn ihr es mal testen würdet.

gsh 28. Feb 2005 18:23

Re: Bitte mal testen: Programm zum Synchronisieren von Ordne
 
Test1:
ich weiss ja nicht ob ich was falsch gemacht habe aber wenn ordner a(quell) = b(ziel) dann will er mir alle Dateien löschen aber die sind ja schon synchron.

Test2:
a hat 5 Dateien
b hat von den 5 Dateien eine weniger (der rest gleich)
Ergebnis: Er will mir alle dateien löschen bis auf die eine im b ordner fehlende Datei

Test3:
a hat 3 Dateien
b hat 4 Dateien
Ergebnis: Er will mir die Dateien die nicht im a sondern im b sind werden gelöscht passt. aber ich habe es nie geschaft eine datei in der erstellungsliste zu finden.

Also Fazit du solltest dein Prog etwas überarbeiten. :gruebel:

Luckie 28. Feb 2005 18:40

Re: Bitte mal testen: Programm zum Synchronisieren von Ordne
 
Zitat:

Zitat von gsh
Test1:
ich weiss ja nicht ob ich was falsch gemacht habe aber wenn ordner a(quell) = b(ziel) dann will er mir alle Dateien löschen aber die sind ja schon synchron.

Hm, habe ich gerade ausprobiert. Bei mir bleiben beide Listboxen leer.

Zitat:

Test2:
a hat 5 Dateien
b hat von den 5 Dateien eine weniger (der rest gleich)
Ergebnis: Er will mir alle dateien löschen bis auf die eine im b ordner fehlende Datei
Auf was ähnliches bin ich auch gerade gestossen. Mal gucken.

Zitat:

Test3:
a hat 3 Dateien
b hat 4 Dateien
Ergebnis: Er will mir die Dateien die nicht im a sondern im b sind werden gelöscht passt. aber ich habe es nie geschaft eine datei in der erstellungsliste zu finden.
In was für einer Liste?

Zitat:

Also Fazit du solltest dein Prog etwas überarbeiten. :gruebel:
Es ist ja noch nicht mal geschrieben. Es ist ja erstmal nur eine zusammengeklickte Oberfläche zum Testen.

mschaefer 28. Feb 2005 18:44

Re: Bitte mal testen: Programm zum Synchronisieren von Ordne
 
Hallo Michael,

wenig Zeit heute, gut das Prg erkennt die Files zum kopieren und löschen.
Soweit sogut. Die Frage ist was willst Du daraus machen? Für normale Verzeichnissync
gibt es ja schon einiges. Für die FTP-Seiten synchonisation könnte ich mir sowas gut vorstellen:
Webseiten lokal testen und von Zeit zu Zeit den Synchronisator zum veröffentlichen laufen lassen..

Grüße // Martin

Luckie 28. Feb 2005 18:46

Re: Bitte mal testen: Programm zum Synchronisieren von Ordne
 
Zitat:

Zitat von mschaefer
Hallo Michael,

wenig Zeit heute, gut das Prg erkennt die Files zum kopieren und löschen.
Soweit sogut. Die Frage ist was willst Du daraus machen? Für normale Verzeichnissync
gibt es ja schon einiges.

Ich habe da leider nichts gescheites gefunden, deswegen das eigene Programm.

gsh 28. Feb 2005 18:48

Re: Bitte mal testen: Programm zum Synchronisieren von Ordne
 
Bei test1 könnte sein das das erstellungsdatum nicht zusammen passt ? (wegen 1 sek.)

und das letzte kommentar meinte ich den Logaritmus

//Ich wurde von der DP gewarnt des einer Schneller war cool :mrgreen:

Luckie 28. Feb 2005 18:51

Re: Bitte mal testen: Programm zum Synchronisieren von Ordne
 
Zitat:

Zitat von gsh
Bei test1 könnte sein das das erstellungsdatum nicht zusammen passt ? (wegen 1 sek.)

Das könnte sein. Ich weiß nicht, was für Auflösungen das Dateisystem hat. Und bei NTFS und FAT ist es auch wieder unterschiedlich.

Zitat:

und das letzte kommentar meinte ich den Logaritmus
Ach so.

Luckie 1. Jun 2005 02:54

Re: Bitte mal testen: Programm zum Synchronisieren von Ordne
 
So, noch mal bitte testen. Neue Version (Codename: Pegasus :mrgreen:) befindet im Anhang vom ersten Posting.

Es funktioniert bisher nur die eine Schaltfläche "Dateiliste". Es ist auch noch nicht optimiert bei vielen Dateien kann es schon etwas dauern.

Seven 1. Jun 2005 07:02

Re: Bitte mal testen: Programm zum Synchronisieren von Ordne
 
Hast Du Ziel und Quell-Ordner verwechselt?

Meine Quelle war c:\12
Mein Ziel ist c:\temp
In der Dateiliste zeigt er mir aber die Dateien des Zielordners an. Oder ist das so gewollt?

Luckie 1. Jun 2005 11:33

Re: Bitte mal testen: Programm zum Synchronisieren von Ordne
 
Eigentlich nicht. :gruebel:

Treffnix 1. Jun 2005 11:46

Re: Bitte mal testen: Programm zum Synchronisieren von Ordne
 
Hallo, werds mir frühestens heute Abend mal anschauen, aber jetzt schonmal eine Frage:

Synchronisierst du beide Ordner oder hälst du nur den Zielordner auf dem Stand vom Quellordner ( also Backup )?

freak4fun 1. Jun 2005 11:53

Re: Bitte mal testen: Programm zum Synchronisieren von Ordne
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo :hi:,
ich hab dein Programm mal runter geladen und getestet. Aber es passiert nichts. Glaub ich.

Ich hab einen Ordner Test mit 2 Unterordnern a und b angelegt und im Quellverzeichnis 2 Dateien eingefügt.

Wenn ich auf Dateiliste klicke sehe ich den Screen1.

Wenn ich auf Abgleichen klicke passiert nichts. :gruebel:

Ist das so gewollt? :mrgreen:


MfG
freak

Luckie 1. Jun 2005 11:56

Re: Bitte mal testen: Programm zum Synchronisieren von Ordne
 
Ich halte nur den Zielordner auf dem Stand vom Quellordner (bis jetzt). Ich habe jetzt einen USB Stick, auf dem ich meine Dateien schnell mal zwischen sichere, aber ich sie eigentlich niergens wo anders bearbeite. jetzt hatte ich das Problem, dass ich nicht immer die Ordner auf dem Stick komplett löschen und alles kopieren wollte. Ich habe mir bisher mit einem Batch-Skript geholfen, nur damit lassen sich keine leeren Ordner löschen, deswegen habe ich das Projekt wieder rausgekramt. Aber man könnte es bestimmt so erweitern, dass man auch eine komplette Synchronisation implementiert. Kommt eventuell im nächsten Schritt oder so.

Luckie 1. Jun 2005 11:57

Re: Bitte mal testen: Programm zum Synchronisieren von Ordne
 
Zitat:

Zitat von freak4fun
Wenn ich auf Dateiliste klicke sehe ich den Screen1.

Das ist gut.

Zitat:

Wenn ich auf Abgleichen klicke passiert nichts. :gruebel:
Das ist auch noch gut, wenn es anders wäre, dann hätte heute Nacht jemand an meinem Computer gesessen und da was programmiert.
Bitte aufmerksam lesen: http://www.delphipraxis.net/internal...=375500#375500

Luckie 1. Jun 2005 23:58

Re: Pegasus: Einfaches backup Programm
 
Sodele. Die erste funktionierende Version ist da. Siehe Anhang im ersten Posting. Deswegen wandert dieser Thread auch nach Freeware. Wenn es weitgehend fertig ist, werde ich wohl OpenSource draus machen.

supermuckl 2. Jun 2005 00:35

Re: Pegasus: Einfaches backup Programm
 
wäre ich gestern nich so müde gewesen hätt ich dir noch geholfen.. naja :)
jedenfalls cool das du es geschafft hast.
ich kann das teil sehr gut gebrauchen

und werde das ganze dann auch noch nach kylix übersetzen und das dann auch hier posten (mit bin)
das dann als commandozeilen prog ohne librarys auskommt
natürlich nur mit deiner erlaubnis.. darf ich? ;)

achja
Zitat:

Aber man könnte es bestimmt so erweitern, dass man auch eine komplette Synchronisation implementiert. Kommt eventuell im nächsten Schritt oder so.
diese komplettsync würde ich jetzt eher nicht gebrauchen wollen weil ich die quelldaten auf alle fälle unberührt haben soll
deshalb wenn, dann abschaltbar oder in extra version bitte :)

Luckie 2. Jun 2005 01:17

Re: Pegasus: Einfaches backup Programm
 
Zitat:

Zitat von supermuckl
wäre ich gestern nich so müde gewesen hätt ich dir noch geholfen.. naja :)
jedenfalls cool das du es geschafft hast.
ich kann das teil sehr gut gebrauchen

Die beiden entscheidenden Routinen kan nich ja mal hier psoten:
Delphi-Quellcode:
procedure FindFilesToCopy(RootFolder: string; Mask: string = '*.*'; Recurse:
  Boolean = True);
var
  SR: TSearchRec;
  s1, s: string;
begin
  Application.ProcessMessages;
  if bCanceled then Exit;
  // Implementation bis einschließlich Delphi 4
  if RootFolder = '' then
    Exit;
  if AnsiLastChar(RootFolder)^ <> '\' then
    RootFolder := RootFolder + '\';

  // Implementation ab Delphi 5
  RootFolder := IncludeTrailingPathDelimiter(RootFolder);

  // * * * * *
  // nur bis einschließlich Delphi 4 benötigt
  if Mask = '' then
    Mask := '*.*';
  // * * * * *

  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
            FindFilesToCopy(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 then
      begin
        s1 := copy(RootFolder, length(SourcePath) + 2, length(RootFolder));
        s := BackupPath + '\' + s1 + SR.Name;
        if (MD5_Hash2String(HashForFile(AnsiLowerCase(RootFolder +
          SR.Name))) <>
          MD5_Hash2String(HashForFile(AnsiLowerCase(s)))) or
          (not FileExists(s)) then
        begin
          slFilesToCopy.Add(RootFolder + string(SR.Name));
        end;
      end;
    until FindNext(SR) <> 0;
  finally
    FindClose(SR);
  end;
end;
und
Delphi-Quellcode:
procedure FindFilesToDelete(RootFolder: string; Mask: string = '*.*';
  Recurse: Boolean = True);
var
  SR: TSearchRec;
  s: string;
  s1: string;
  s2: string;
  Index: Integer;
begin
  Application.ProcessMessages;
  if bCanceled then Exit;
  // Implementation bis einschließlich Delphi 4
  if RootFolder = '' then
    Exit;
  if AnsiLastChar(RootFolder)^ <> '\' then
    RootFolder := RootFolder + '\';

  // Implementation ab Delphi 5
  RootFolder := IncludeTrailingPathDelimiter(RootFolder);

  // * * * * *
  // nur bis einschließlich Delphi 4 benötigt
  if Mask = '' then
    Mask := '*.*';
  // * * * * *

  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
            FindFilesToDelete(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 then
      begin
        s1 := copy(RootFolder, length(SourcePath) + 2, length(RootFolder));
        s := BackupPath + '\' + s1 + SR.Name;
        s1 := copy(Sourcepath, 4, length(Sourcepath));
        Index := pos(AnsiLowerCase(s1), AnsiLowerCase(BackupPath));
        s2 := copy(RootFolder, Index, length(RootFolder));
        s := copy(Sourcepath, 0, 3) + s2 + string(SR.Name);
        if not FileExists(s) then
        begin
          slFilesToDelete.Add(RootFolder + SR.Name);
        end;
      end;
    until FindNext(SR) <> 0;
  finally
    FindClose(SR);
  end;
end;
Mein Fehler war wohl, dass ich mit dem Dateidatum gearbeitet habe und da etwas schief gegangen ist. Ich gehe jetzt über den Hash.

Zitat:

und werde das ganze dann auch noch nach kylix übersetzen und das dann auch hier posten (mit bin)
das dann als commandozeilen prog ohne librarys auskommt
natürlich nur mit deiner erlaubnis.. darf ich? ;)
Ja klar, kein Problem.

Zitat:

achja
Aber man könnte es bestimmt so erweitern, dass man auch eine komplette Synchronisation implementiert. Kommt eventuell im nächsten Schritt oder so.

diese komplettsync würde ich jetzt eher nicht gebrauchen wollen weil ich die quelldaten auf alle fälle unberührt haben soll
deshalb wenn, dann abschaltbar oder in extra version bitte :)
Logisch, wenn dann nur optional. Aber ich habe mir das mal durch den Kopf gehen lassen, da müsste man die Suche irgendwie optimieren.

Luckie 2. Jun 2005 11:03

Re: Pegasus: Einfaches backup Programm
 
Version: 0.1.0.2 vom 2006-06-02@12:00
Selber einen Bug gefunden. :roll:

Download: Siehe erste Posting.

freak4fun 2. Jun 2005 12:01

Re: Pegasus: Einfaches backup Programm
 
Hallo :hi:,
Wenn ich Dateien abgleichen drücke, obwoehl keine Dateiem vorhanden sind, bekomme ich eine Fehlermeldung. Kannst du nicht den Button dann einfach wieder aus machen?
Ein automatisches "Dateiliste" drücken nach dem Abgleichen wäre auch nicht schlecht.
Mir ist es passiert, das ich den ZielOrdner = dem QuellOrdner gesetzt hab. Da wäre ein kleiner Hinweis nicht schlecht. :mrgreen:
Vielleicht noch eine kleine Zeichenlegende/erklärung dazu. ;)
Was mir noch aufgefallen ist, das Programm blinkt dauernd in der Taskleiste auf. :gruebel:
Wenn man den Quell/Zielordner schon gesetzt hat und den Opendialog öffnet und wieder abbricht ist der alte Pfad wieder weg. Das muss doch nicht sein, oder?
Kannst du dir vielleicht die Ordnerpfade irgendwo merken? Ich bin es langsam leid die immerwieder zu suchen. :drunken:

Ich finde gut, das es nicht in beide Richtungen funktioniert, weil man dann im Quellverzeichnis ausversehen Daten löschen kann.

Ansonsten ein sehr schönes Programm.

MfG
freak

Luckie 2. Jun 2005 12:14

Re: Pegasus: Einfaches backup Programm
 
Danke für das feedback. *unter den schreibtisch kriecht, um sein Pflege kaninchen Gipsy zu knuddeln*

sECuRE 2. Jun 2005 13:45

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

Seven 3. Jun 2005 09:53

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*

mirage228 3. Jun 2005 14:24

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:
type
  TOnFindFile = procedure(const FileName: string) of object;
Deine Suchprozedur änderst Du zu so einer:
Delphi-Quellcode:
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;
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.

Ich hoffe, dass ich Dir damit einen kleinen Ansatzpunkt zur Verbesserung geben konnte :)

mfG
mirage228

Luckie 3. Jun 2005 14:45

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?

mirage228 3. Jun 2005 14:55

Re: Pegasus: Einfaches backup Programm
 
Zitat:

Zitat von Luckie
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?

Du musst natürlich beide Ordner durchsuchen, brauchst aber den Großteil des Codes nicht doppelt zu schreiben, sondern nur den relevanten Teil.

mfG
mirage228

Luckie 3. Jun 2005 14:56

Re: Pegasus: Einfaches backup Programm
 
OK, das wär eine Optimierumng des Codes. Bringt aber nichts an Performance.

sECuRE 3. Jun 2005 17:43

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

Luckie 3. Jun 2005 17:50

Re: Pegasus: Einfaches backup Programm
 
Zitat:

Zitat von sECuRE
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.

Ich biolde Hashes über die Dateien um die geänderten zu ermitteln. dabei benutze ich einen optimierten MD5 Hash von Assarbad.

Zitat:

Kritik:
- Das Programm "flasht" in der Taskleiste, auch wenn es im Vordergrund ist (also das aktive Fenster). Sollte so ja nicht sein, denke ich?
Doch soll so sein. das tut es, wenn es mit der Dateiliste oder mit dem Abgleichen fertig ist. Wenn ich es benutze, dann arbeite ich meist in einem anderem fenster weiter und würde dann auch keine Messagebox-Benachrichtigung von dem Programm bemerken. das war der Hintergedanke dabei.

Zitat:

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.
Vorschlag? ;)
Zitat:

- Dateien vom Vergleichen ausschließen wäre nett (z.B. *.dcu ;))
... und eventuell ganze Ordner oder so. Hab eich auch schon drangedacht, war aber bisher zu faul mir über eine möglioche Lösung Gedanken zu machen.
Zitat:

- Automatisch abgleichen und mehrere Ordner zum abgleichen angeben, alternativ halt Parametersupport und 'ne Batch-Datei, ist aber nicht so schön.
Ich wollte "Jobs" unterstützen: Man speichert einmal Quelle und Ziel unter einem Job-Namen ab und dieser Job kann dann wieder geladen werden oder so.
Zitat:

Kommt noch eine Hilfedatei zu dem Programm?
Langsam, wir sind erst beim Testen, ob alle Dateien korrekt erkannt werden. ;)

sECuRE 3. Jun 2005 18:42

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

Luckie 3. Jun 2005 18:59

Re: Pegasus: Einfaches backup Programm
 
Ich dachte, eigentlich, dass du einen Vorschlag machst, wie dieses ominöse Icon aussehen könnte. ;)

sECuRE 3. Jun 2005 19:17

Re: Pegasus: Einfaches backup Programm
 
Hi,

achso ;) Sorry. Dachte da an ein gelbes Plus.

cu

Luckie 4. Jun 2005 00:01

Re: Pegasus: Einfaches backup Programm
 
Neues Feature: Jobs. Man kann jetzt Abgleiche von Verzeichnissen abspeichern, so dass man nicht immer die passendne Ordner manuell auswählen muss.

engine 4. Jun 2005 10:33

Re: Pegasus: Einfaches backup Programm
 
Hi Luckie,


Schau dir doch mal bitte diesen Link an unison
Um die Performance zu verbessern, kann man bei diesem Programm in einem Modus wechseln bei dem versucht wird, nur Fragmente einer Datei zu übertragen, die auf dem jeweiligen Rechner nicht vorhanden sind. Damit ist man in der Lage auch über ein Modem große Datenmengen zu Synchronisieren. Für den lokalen Abgleich mit einem USB-Stick ist das zwar nicht sinnvoll, denn hier werden ja nicht die Schreibzugriffe minimiert, sondern nur die zu übertragenden Daten. Das oben erwähnte Programm verwende ich, um die Programmdateien eines Server auf einen zweiten zu Synchronisieren. Beim ersten Aufruf dauerte dies ziemlich lange, da hier alle Prüfsummen angelegt wurden. Bei späteren Aufrufen, werden mehrere GB in wenigen Minuten auf beiden Rechnern abgeglichen.
Versteht dies bitte nicht als Werbung für ein anderes Programm, sondern als Anregung für weitere Funktionen.

engine 4. Jun 2005 10:54

Re: Pegasus: Einfaches backup Programm
 
Zitat:

Zitat von sECuRE
Hi,

achso ;) Sorry. Dachte da an ein gelbes Plus.

cu

Wenn eine Datei geändert wurde, könnte man auch ein Pfeil anstelle eines Plus verwenden.
Dieser Pfeil gibt die Richtung an, in die synchronisiert wird.

Luckie 11. Jun 2005 14:12

Re: Pegasus: Einfaches backup Programm
 
Version: 1.2.0.0 vom 2005-06-11@15:10
Multithreading implementiert
TPegasus-Klasse mit Events ausgestattet
Anzeigen der aktuellen Dateinamen in der Statuszeile

Download im ersten Posting: http://www.delphipraxis.net/internal...ct.php?t=48190

Die Muhkuh 11. Jun 2005 14:27

Re: Pegasus: Einfaches backup Programm
 
Hi Michael,

wenn du auf "Jobs" gehst und dann auf "Löschen" drückst, ohne ein Item markiert zu haben, kommt ein "List index out of bounds(-1)"-Fehler.

Dann hätte ich noch einen kleinen Verbesserungsvorschlag. Man kann bei einem Job, eine Zeit hinzufügen, in der das Programm selbstständig diesen Job ausführt (sofern das Programm gestartet ist).

[edit] Ausserdem, sollte man verfügbare Jobs bearbeiten können [/edit]

Luckie 11. Jun 2005 14:33

Re: Pegasus: Einfaches backup Programm
 
Zitat:

Zitat von Spider
wenn du auf "Jobs" gehst und dann auf "Löschen" drückst, ohne ein Item markiert zu haben, kommt ein "List index out of bounds(-1)"-Fehler.

In Version 1.2.0.1 behoben, lade ich aber später erst hoch, wenn es sich lohnt.

Zitat:

Dann hätte ich noch einen kleinen Verbesserungsvorschlag. Man kann bei einem Job, eine Zeit hinzufügen, in der das Programm selbstständig diesen Job ausführt (sofern das Programm gestartet ist).
Hm, so komplex sollte es eigentlcih nicht werden, aber mal sehen.

Zitat:

[edit] Ausserdem, sollte man verfügbare Jobs bearbeiten können [/edit]
Ich dachte "Löschen" und "neu erstellen" ginge genauso schnell. Und ändert man einen Job denn oft?

Die Muhkuh 11. Jun 2005 14:37

Re: Pegasus: Einfaches backup Programm
 
Zitat:

Zitat von Luckie
Zitat:

Dann hätte ich noch einen kleinen Verbesserungsvorschlag. Man kann bei einem Job, eine Zeit hinzufügen, in der das Programm selbstständig diesen Job ausführt (sofern das Programm gestartet ist).
Hm, so komplex sollte es eigentlcih nicht werden, aber mal sehen.

Fände ich nicht schlecht. Bietet einfach mehr komfort. Ausserdem, läuft mein PC manchmal über Nacht, da könnte ich nen Backup auf meine externe Festplatte schieben.

Zitat:

Zitat von Luckie
Zitat:

[edit] Ausserdem, sollte man verfügbare Jobs bearbeiten können [/edit]
Ich dachte "Löschen" und "neu erstellen" ginge genauso schnell. Und ändert man einen Job denn oft?

Man ändert ihn zwar sicher nicht so oft, aber auch hier bringt es mehr komfort und einfachheit für den Benutzer.

Luckie 13. Jun 2005 12:17

Re: Pegasus: Luckies persönliches Synchronisationstool
 
Version: 1.3.0.0 vom 2005-06-13@13:16
Nur geänderte Dateien haben jetzt ein orangenes/braunes ( :? ) Plus


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:44 Uhr.
Seite 1 von 3  1 23      

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