Visualizzazione dei risultati da 1 a 9 su 9

Discussione: VB6 - ProgressBar

  1. #1
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291

    VB6 - ProgressBar

    Ho problemi con l'utilizzo dell'ocx ProgressBar. Dovrei associare il controllo alla fase di salvataggio di un file delle dimensioni superiori alla propietà "Max è uguale a 32.767". Ho provato, ma invano potreste aiutarmi? Posto la frazione di codice riguardante la ProgressBar:
    codice:
    FolV = Fso.GetFolder("D:\Elaborazioni\FEF11\Dati").Size 'determina la dimensione del file
    NumFile = (FolV / 1000) 'Kbyte
            NumFile2 = (NumFile * 100 / 32767)
        For i = 0 To NumFile2
            
            'Copia la cartella Dati nella Directory in base a quanto inserito in ValoreDir:
            Fso.CopyFolder "D:\Elaborazioni\FEF11\Dati", ValoreDir, True
            
            ProgressBar1.Value = ProgressBar1.Value + (100 / NumFile2 - 1)
         Next i
            ProgressBar1.Value = 0
    il codice sopra riportato ha un'esecuzione anomala, in sostanza non funziona!
    Sarà che non ho mai usato questo controllo (e che evidentemente è di facile utilizzo ??!!) ma su tre libri di testo consultati, tra cui anche F. Balena, non vi sono sufficienti dettagli.
    Grazie per l'aiuto.
    LM

  2. #2
    io ti consiglio di usare una semplice proporzione
    e di impostare min a 0 e max a 100
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  3. #3
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    E' quello che ho tentato di fare con (NumFile * 100 / 32767) ma c'è qualcosa che non và sopratutto per la limitazione della prop. Max a 32767. il file dovrebbe essere di circa 20 MB, da qui la necessità di
    ridurlo in "NumFile = (FolV / 1000) 'Kbyte".
    Poi, ritengo che "ProgressBar1.Value + (100 / NumFile2 - 1)" non sia corretto. Insomma è tutto da rifare.
    xegallo vuoi essere così cortese di postarmi un esempio?
    LM

  4. #4
    codice:
    Option Explicit
    Dim FSO As FileSystemObject
    Dim f As File
    Dim dSorg As Folder
    
    Private Sub Command1_Click()
    Dim dirLenght As Long
    Dim fileLenght As Long
    Dim bytesscritti As Long
    
    Set dSorg = FSO.GetFolder("d:\gnocche")
    
    dirLenght = dSorg.Size \ 1024
    For Each f In dSorg.Files
        fileLenght = f.Size \ 1024
        f.Copy "d:\"
        ProgressBar1.value = Percent(0, dirLenght, bytesscritti + fileLenght)
        bytesscritti = bytesscritti + fileLenght
        ProgressBar1.Refresh
    Next f
    
    End Sub
    
    Private Sub Form_Load()
        ProgressBar1.min = 0
        ProgressBar1.max = 100
        Set FSO = New FileSystemObject
    End Sub
    
    Function Percent(min As Long, max As Long, value As Long) As Long
        '100 : x = dirlenght : bytes
        
         Percent = value * 100 \ max
    End Function
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  5. #5
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Grazie xegallo per l'esempio che sto leggendo con attenzione.
    LM

  6. #6
    Originariamente inviato da xegallo
    codice:
        f.Copy "d:\"
    Mi da errore su questa riga...

    Errore di run-time '70':
    Autorizzazione negata


    Ovviamente ho cambiato il percorso col mio percorso di destinazione!

    Aggiunte:
    Ho aggiunto Microsoft Scripting Runtime nei riferimenti e Progressbar nei componenti!

    CIAO!

  7. #7
    evidentemente la destinazione o è in sola lettura o pè un percorso di rete disconnesso o non hai i diritti o è lockata da un'altro processo ( o + facile da te stesso)
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  8. #8
    cavolo era in sola lettura!!!
    ma se gli tolgo l'attributo se lo rimette da sola!!!!

  9. #9
    Ho risolto invece che:

    codice:
    f.copy destinazione
    ho usato:

    codice:
     FSO.CopyFile f, destinazione & f.Name
    Questo mi copia tutta la cartella dSorg

    Ma se volessi copiare una cartella con dentro sottocartelle (e nn files) che contengono files devo usare lo stesso codice?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.