Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291

    VB6 - routine di Backup

    Come saprete sto realizzando una routine di backup. Dopo che l'utente ha confermato la copia, vorrei che restasse visualizzato MsgBox ove indicare i byte copiati o, viceversa annullare l'operazione. E' possibile o devo appoggiare tutto su una form?
    Attualmente il codice è questo:
    codice:
    intRis = MsgBox("Proseguire nella copia in  " & ValoreDir & "  ? " & " Byte da copiare " & Format(FolV, "#,##0"), vbYesNoCancel + vbQuestion, "Applicazioni Aziendali")
    In particolare, quale codice devo usare per annullare l'operazione quando questa è in corso, naturalmente senza provocare danni ai dati di origine?
    Grazie sin d'ora per le risposte.
    LM

  2. #2
    Beh gestendolo dalla msgbox puoi fare questo

    codice:
    Dim str as String
    str = MsgBox (MsgBox("Proseguire nella copia in  " & ValoreDir & "  ? " & " Byte da copiare " & Format(FolV, "#,##0"), vbOkCancel + vbQuestion, "Applicazioni Aziendali"))
    
    Select case str
         case "vbOk":
            'istruzione
         case "vbCancel":
            'istruzione
    End Select
    Oppure un lavoro piu' pulito lo puoi fare con una form da te creata.
    Ricorda che una volta iniziata un' operazione SQL non la puoi interrompere ...

  3. #3
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Grazie per la risposta raffaeu,
    é come pensavo, costruire una form, dapo che dopo - case "vbOk" -
    dovrebbe permanere la finestra di messaggio ove vorre visualizzare i byte copiati e, contemporaneamente dare all'utente la possibilità di annullare l'operazione. A tale proposito, annullare l'operazione in corso, secondo te quale codice devo usare in VB.
    Grazie
    LM

  4. #4
    Devi postarmi il codice per la copia, cosa stai copiando dei file, una folder?
    Cosa usi FSO (File System Object?)


  5. #5
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Eccolo:
    .... .... ....
    codice:
     FolV = Fso.GetFolder(App.Path & "\Dati").Size
               
            intRis = MsgBox("Proseguire nella copia in  " & ValoreDir & "  ? " & " Byte da copiare " & Format(FolV, "#,##0"), vbYesNoCancel + vbQuestion, "Applicazioni Aziendali")
            'TxtPerc.Text = "Copiato il  " & intShpVal & " %" & "  di  " & Format(FolV, "#,##0") & "  byte" & "  in  " & ValoreDir
            
    'Copia la cartella Dati nella Directory in base a quanto inserito in ValoreDir:
            Fso.CopyFolder App.Path & "\Dati", ValoreDir, True
            
            FolN = Fso.GetFolder(ValoreDir).Size
    
    'Controlla la dimensione in byte delle due cartelle:
            If FolV = FolN Then
                MsgBox "I dati  ( pari a  " & Format(FolV, "#,##0") & "  byte )" & "  sono stati copiati " & Chr(13) _
                & "con successo nella directory  " & ValoreDir, vbInformation, "Applicazioni Aziendali"
      
    'Riabilita i controlli:
                Call AbilitCtr
                Else
                MsgBox "Il backup ha fallito, ripetere l'operazione", vbInformation, "Applicazioni Aziendali"
    'Riabilita i controlli:
                Call AbilitCtr
            End If
             
            Set Fso = Nothing
            
            frmMain.TxtStato = "Pronto"
        End If
    
    'L'operazione è stata annullata:
            If intRis = vbNo Or intRis = vbCancel Then
                MsgBox "L'operazione è stata Annullata.", vbInformation, "Applicazioni Aziendali"
                frmMain.TxtStato = "Pronto"
                Exit Sub
            End If
    End Sub
    Come vedi uso exit sub, però prima che l'operazione di copia abbia inizio.
    LM

  6. #6
    Beh puoi far gestire la sub ad una form e se premi no o cancel chiami un unload della form che scarica tutto subito oppure è giusto l' exit sub ma non so come gestisce la cosa, ovvero io ho sempre avuto il problema di voler forzare il termine di un' operazione, mai il contrario anche perchè come dici tu, ti troveresti a non sapere quel che realmente è stato copiato.

    Comunque va benissimo l' exit sub.

  7. #7
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    raffaeu nel frattempo ho visitato il tuo sito, complimenti !, ed ho visto una magnifica ProgressBar. Hai un'esperienza specifica in VB. Ora ti spiego la domanda.
    Ho realizzato una ProgressBar utilizzando due Shape ed un Timer che mi consentono di cambiare colore alla progressione della copia, visualizzo la Dir di destinazione ecc. ecc., ma mi sono accorto che la progressione Non è correlata con i byte copiati. In altri termini l'operazione avviene ma è posticcia (la copia è già avvenuta mentre la barra scorre ancora). Sai come si fà per correlare la copia con lo scorrere della barra?
    LM

  8. #8
    Guarda lo fai con lo streaming dei file copiati ma te lo sconsiglio perchè diventi scemo. Io normalmente faccio il tutto in c++ perchè se ti metti a farlo in VB 6, usando API e magari anche del subClassing diventi davvero matto per una semplice progress bar.

    Prova qui

    http://www.freevbcode.com

    Inoltre ricorda che Windows e non VB 6 ti dice quanti byte solo dopo che lo ha copiato ...

  9. #9
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Hai proprio ragione, dopo una settimana di lavoro, prova e riprova, ho dovuto abbandonare. Il problema è che non conosco il C.
    Allora è per questo che Non riuscivo a capire come mai non mi dava i byte copiati in tempo reale !? E pensare che credevo di commettere degli errori nel codice.
    LM

  10. #10
    No ma se vai sul sito che ti ho postato trovi classi in VB 6 già pronte per il tuo scopo e come dice il dominio è tutto free.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.