AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Verzeichnisse synchronisieren (A > B) - welcher Ansatz?
Thema durchsuchen
Ansicht
Themen-Optionen

Verzeichnisse synchronisieren (A > B) - welcher Ansatz?

Ein Thema von MiKaEr · begonnen am 2. Mär 2012 · letzter Beitrag vom 2. Mär 2012
Antwort Antwort
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

AW: Verzeichnisse synchronisieren (A > B) - welcher Ansatz?

  Alt 2. Mär 2012, 16:59
Wie meinst du das?
Im allgemeinen sollte das doch so aussehen
Basisverzeichnis+einzelfallverzeichis+DateinameX
wobei gelten könnte
für akt Sourcen:
Basisverzeichnis = "C:\Delphi\D2006\DBprogramme"
EinzelfallVerzeichnis= "Anlagenverwaltung\V1\
DateinameX= "AnlageMain.dpr"

und für das Backup:

Basisverzeichnis = "D:\Backups\2011\Delphi\D2006\DBprogramme"
EinzelfallVerzeichnis= "Anlagenverwaltung\V1\
DateinameX= "AnlageMain.dpr"

wobei Dateinamex natürlich nacheinander alle Dateien in einem Verzeichnis enthalten kann (die verglichen werden sollen)



Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
MiKaEr
(Gast)

n/a Beiträge
 
#2

AW: Verzeichnisse synchronisieren (A > B) - welcher Ansatz?

  Alt 2. Mär 2012, 17:02
ok, noch einmal detallierter (war meni fehler):

ich habe verzeichnis A und verzeichnis B.
angenommen diese haben nun exakt den selben inhalt.

später lösche ich z.b. "dateixyz.txt" aus verzeichnis A. bei einem automatischen backup sollte dann nun auch, falls vorhanden, die datei "dateixyz.txt" aus verzeichnis B gelöscht werden.

das ganze nenne ich nun einfach mal eine "exakte kopie". es wird nicht einfach "drauflos kopiert", sondern vorher "müll" von verzeichnis B entfernt.

wie ich das ressourcenschonen mache, weiß ich nicht.

ich könnte ganz einfach den inhalt von verzeichnis B löschen und den inhalt von A nach B kopieren. das dauert aber immer sehr lange (große verzeichnisse) und ist nicht im sinne des erfinders.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Verzeichnisse synchronisieren (A > B) - welcher Ansatz?

  Alt 2. Mär 2012, 17:11
Wenn Du in Deinen Listen die Relativpfad mit Dateinamen
(ich verwende hier gerne Clientdatasets mit allen zusätzlichen Informationen Größe/Änderung etc.)
aus beiden Verzeichnissen sammelst kannst Du doch direkt:
aussieben was nicht beachtet werden sollen,
die löschen die nach Vergleich nicht kopiert werden müssen,
solche kopieren die fehlen
und jene löschen die überzählig sind.

gegf. wäre so etwas wie ein SVN für Dich auch interessant ...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
MiKaEr
(Gast)

n/a Beiträge
 
#4

AW: Verzeichnisse synchronisieren (A > B) - welcher Ansatz?

  Alt 2. Mär 2012, 17:13
das war auch bereits mein ansatz, an welchem ich aber kläglich gescheitert bin (zwei verschaltelte for-schleifen und zwei stringlisten)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: Verzeichnisse synchronisieren (A > B) - welcher Ansatz?

  Alt 2. Mär 2012, 17:15
Eine Schleife und in der 2. Liste mit IndexOf arbeiten ?
oder 2 Clientdatasets Master/Detail verknüpft und while not EOF über den Master laufen.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
MiKaEr
(Gast)

n/a Beiträge
 
#6

AW: Verzeichnisse synchronisieren (A > B) - welcher Ansatz?

  Alt 2. Mär 2012, 17:17
mhh..

was aber, wenn die erste schleife 2 einträge hat und die zweite schleife 10. dann gibt es glaube ich schon wieder ein problem.

ich habe absolut keine ahnung und keinen gescheiten lösungsansatz mehr.


Delphi-Quellcode:
for i := 0 to sourceDir.Count - 1 do
 begin
  for j := 0 to destDir.Count - 1 do
   begin
    // ???
   end;
 end;
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#7

AW: Verzeichnisse synchronisieren (A > B) - welcher Ansatz?

  Alt 2. Mär 2012, 17:26
zerlege es in Schritte
1.) Beide Listen füllen
2.) die eliminieren die nicht geändert wurden PSEUDOCODE
Delphi-Quellcode:
       For i := SourceListe.Count -1 DonwTo 0 do
       begin
       x := Backupliste.IndexOf(SourceListe[i]);
       if (x>-1) and // Dein Vergleich stellt fest identisch then
          begin
             SourceListe.Delete(i);
             Backupliste.Delete(x);
          end;
       end;
3.) Kopieren was noch in Sourceliste drin ist, dabei gleich löschen (auch in Backupliste) wenn vorhanden
4.) was noch in der Backupliste steht löschen

ich hoffe ich habe nichts übersehen ....
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Verzeichnisse synchronisieren (A > B) - welcher Ansatz?

  Alt 2. Mär 2012, 17:21
Hi MiKaEr

ich denke mal du willst eine differentielle/inkrementelle Sicherung machen, oder?
Wenn ja kannst du vielleicht mal nach diesen Stichworten bei Google suchen. Nach der Dateigröße würde ich jedoch nicht gehen, da du ja nicht weißt, ob die Datei mit der kleineren Dateigröße neuer ist oder die mit der Größeren.

m.f.G. Aviator.
  Mit Zitat antworten Zitat
MiKaEr
(Gast)

n/a Beiträge
 
#9

AW: Verzeichnisse synchronisieren (A > B) - welcher Ansatz?

  Alt 2. Mär 2012, 17:24
ich habe zwar eine ausbildung im informatikbereich als javaprogrammierer gemacht, aber differentielle/inkrementelle sagt mir nichts mehr (zu lange her )

ich habe hier gerade einen netten ansatz gefunden, welchen ich für meine zwecke, so denke ich, anpassen werde:
http://www.delphipraxis.net/723725-post4.html
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: Verzeichnisse synchronisieren (A > B) - welcher Ansatz?

  Alt 2. Mär 2012, 17:28
ich habe zwar eine ausbildung im informatikbereich als javaprogrammierer gemacht, aber differentielle/inkrementelle sagt mir nichts mehr (zu lange her )

Hier mal eine kleine Auflistung der Sicherungsarten: Sicherungsarten
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:50 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