Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - eseguire una copia incrementale di un file
Forum - Visual Basic 6 - eseguire una copia incrementale di un file

Avatar
gmax74 (Normal User)
Newbie


Messaggi: 8
Iscritto: 16/05/2006

Segnala al moderatore
Postato alle 9:48
Mercoledì, 20/06/2007
devo realizzare un programma che da un bacth esterno richiama il prg il quale mi deve eseguire una copia di backup incrementale :

1- prendo il file originale e sposto nella cartella di backup

2- nella cartella backup devo eseguire la copia con una retecion di 50gg (giorni)

3- x far ciò devo fargli controllare se esiste il file originale , in questo caso se c'e' esegui copia originale ---> originale.1
      originale.1 -> originale.2
e cosi via

4- in questo codice riesco a fare le copie ma solo dello stesso file !! come posso fare a risolvere il problema?


Function backup()
Dim files As String
Dim num As Long
Dim lavoro As String
Dim inizio As String
files = "c:\gm\files\"
lavoro = "c:\gm\safe\"

FileCopy files & "eodspool", lavoro & ("eodspool" & "." & "prn")
Name files & "eodspool" As files & ("eodspool" & "." & "prn")
Kill files & ("eodspool" & "." & "prn")
  For num = 1 To 50
  FileCopy lavoro & ("eodspool" & "." & (num)), lavoro & ("eodspool" & "." & (num +1))
Next num

end function

PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 15:41
Mercoledì, 20/06/2007
hai le idee un po confuse.
semplifichiamo e trsformiamo
Codice sorgente - presumibilmente VB.NET

  1. Function backup()
  2. Dim files As String
  3. Dim num As Long
  4. Dim lavoro As String
  5. Dim inizio As String
  6. files = "c:\gm\files\"
  7. lavoro = "c:\gm\safe\"
  8.  
  9. FileCopy files & "eodspool", lavoro & ("eodspool" & "." & "prn")
  10. Name files & "eodspool" As files & ("eodspool" & "." & "prn")
  11. Kill files & ("eodspool" & "." & "prn")
  12.   For num = 1 To 50
  13.   FileCopy lavoro & ("eodspool" & "." & (num)), lavoro & ("eodspool" & "." & (num +1))
  14. Next num
  15.  
  16. end function


=>
Codice sorgente - presumibilmente VB.NET

  1. Function backup()
  2. Dim files As String
  3. Dim num As Long
  4. Dim lavoro As String
  5. Dim inizio As String
  6. files = "c:\gm\files\"
  7. lavoro = "c:\gm\safe\"
  8.  
  9. FileCopy files & "eodspool", lavoro & "eodspool.prn"
  10. Kill files & "eodspool"
  11.   For num = 1 To 50
  12.   FileCopy lavoro & ("eodspool." & (num)), lavoro & ("eodspool." & (num +1))
  13. Next num
  14. end function


ora cosa fa questo codice?sposta eodspool in lavoro e poi fa 50 copie di eodspool.1 (che fra l'altro deve già essere li perchè nessuno l'ha creato..)
ora guardo di mettere a posto il codice per te.

Ultima modifica effettuata da P4p3r0g4 il 20/06/2007 alle 15:41
PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 15:51
Mercoledì, 20/06/2007
Codice sorgente - presumibilmente VB.NET

  1. Function backup(nomefile as string)
  2. Dim files As String
  3. Dim num As Long
  4. Dim lavoro As String
  5. Dim inizio As String
  6. files = "c:\gm\files\"
  7. lavoro = "c:\gm\safe\"
  8.  
  9. FileCopy files & nomefile, lavoro & (nomefile & ".prn")
  10. Kill files & nomefile
  11. For num = 1 To 50
  12.   on error resume next
  13.   Name lavoro & (nomefile & "." & (50-num)), lavoro & (nomefile & "." & (51-num))
  14. Next num
  15. FileCopy files & (nomefile & ".prn"), lavoro & (nomefile & ".1")
  16. end function



ora basta che fai backup("ilnomedelfile") e ti farà il tuo backup.il numero di copie massime è limitato a 50.

Ps:hai capito come funziona e dove erano i tuoi errori?

Ultima modifica effettuata da P4p3r0g4 il 20/06/2007 alle 15:54
PM Quote
Avatar
gmax74 (Normal User)
Newbie


Messaggi: 8
Iscritto: 16/05/2006

Segnala al moderatore
Postato alle 16:44
Giovedì, 21/06/2007
ok grazie !!!
ora mi metto a lavoro e verifico il tutto

PM Quote