1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95:
| procedure TForm1.syncbtClick(Sender: TObject); var i,e, v,r,p: Integer; serverlist, serverlistcl, pclist, pclistcl: TStringlist; within: Boolean; begin serverlist:= Tstringlist.Create; chronik.Items.add('Serverlist erstellt!'); pclist:= Tstringlist.Create; chronik.Items.add('PClist erstellt!'); serverlistcl:= Tstringlist.Create; chronik.Items.add('ServerlistCL erstellt!'); pclistcl:= Tstringlist.Create; chronik.Items.add('PClistCL erstellt!'); for i:= 0 to sync_dirs.Count-1 do begin if sync_dirs.Checked[i] then begin ftp.ChangeDir(sync_dirs.Items[i]); chronik.Items.add('Ordner: '+ sync_dirs.Items[i]); getfilesinserverdir('',sync_dirs.Items[i],ftp,serverlist,serverlistcl,chronik);
if not (directoryexists(pcpath+'\'+sync_dirs.Items[i])) then forcedirectories(pcpath+'\'+sync_dirs.Items[i]); GetFilesInDirectory(pcpath+'\'+ sync_dirs.Items[i],'','*.*',pclist,true); chronik.Items.add('PClistCL befüllen'); for e:=0 to pclist.Count-1 do begin if ((pclist[e] <> '.') and (pclist[e] <> '..')) then begin pclistcl.Add(pclist[e]); chronik.Items.add(' PClistCL hinzufügen: '+ pclist[e]); end; end; chronik.Items.add('Start Vergleich'); for v:=0 to serverlistcl.Count-1 do begin r :=0; within:=false; if pclistcl.Count<>0 then begin repeat begin chronik.Items.Add(' Vergleiche: '+serverlistcl[v]+' mit ' + pclistcl[r]); if serverlistcl[v] <> pclistcl[r] then within:= false else within := true; P:=r; inc(r); end; until (within = true) OR (pclistcl.Count = r); end else within := false;
if within = false then begin ftp.Get(serverlistcl[v],pcpath+'/'+sync_dirs.Items[i]+'/'+ serverlistcl[v],true); chronik.Items.add('Kopiere: '+serverlistcl[v]); end else chronik.Items.add('Schon vorhanden: '+serverlistcl[v]); end; chronik.Items.add('Ende Vergleich'); serverlist.Clear; pclist.clear; pclistcl.Clear; serverlistcl.Clear; ftp.ChangeDirUp; end; end; end; |