IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[VB.NET] Créer un pourcentage d'avancement ??


Sujet :

VB.NET

  1. #1
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut [VB.NET] Créer un pourcentage d'avancement ??
    Bonjour, dans le cadre d'une copie de fichier, je voudrais créer un pourcentage qui montre l'avancement de la copie du fichier. Quelqu'un peut-il m'aider ?

    merci
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Celà dépend du traitement que tu effectue pour la copie du fichier
    comment procedes-tu ?
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    J'utilise un petite fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Public Function aa()
    Dim fi As New FileInfo("E:\Emule\Code lyoko\Saison 1\Code Lyoko - 01 - Teddygozilla.avi")
            Dim fs As FileStream = fi.OpenRead()
            Dim fia As New FileInfo("C:\Documents and Settings\DIEDLER\Mes documents\pa.avi")
            Dim fsa As FileStream = fia.OpenWrite()
            Dim nBytes As Integer = 100000
            Dim ByteArray(nBytes) As Byte
            Dim nBytesRead As Integer = 0
     
            Do
                nBytesRead = fs.Read(ByteArray, 0, nBytes)
                Try
                    fsa.Write(ByteArray, 0, 100000)
                Catch ex As Exception
                    MsgBox(ex.ToString)
                End Try
            Loop While Not nBytesRead < 100000
            fia.close
            fsa.close
            Return nBytesRead
        End Function 'Main
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Perso, j'ai pour habitude de faire ce type de traitement dans une Classe à part
    Par exemple ici une Classe FileManager qui proposerait une méthode telle que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Function GetBytesFromFile(ByVal filePath, ByVal nLength as Integer) As Byte()
    J'ajouterai aussi une petite classe dérivée de System.EventArgs pour transmettre des paramètres lors du démarrage du traitement
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Public Class ProgressStartingEventArgs
     Inherits System.EventArgs
     Private length as Integer
     Private steps As Double
     Public ReadOnly Property FullLength() As Integer
       Get
          Return Me.length
       End Get
     End Property
     Public ReadOnly Property StepsCount() As Double
       Get
          Return Me.steps 
       End Get
     End Property
     Public Sub New(ByVal maxByteLength As Integer, ByVal count As Double)
       MyBase.New()
       Me.length = maxByteLength
       Me.steps = count 
     End Sub
    End Class
    Ensuite je manipulerai plusieurs evenement grâce à des délégués
    Soit basiquement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Delegate Sub ProgressStartingEventHandler(ByVal sender As Object, ByVal e As ProgressStartingEventArgs)
    Public Delegate Sub ProgressStepingEventHandler()
    Public Delegate Sub ProgressEndedEventHandler()
    Puis dans ma classe FileManager, je déclare les 3 evènements
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Event ProgressStarting As StartProgressEventHandler
    Public Event ProgressSteping As ProgressStepingEventHandler
    Public Event ProgressEnded As ProgressEndedEventHandler
    Maintenant dans la méthode GetBytesFromFile il suffira de declencher au moment opportun ces differents evenements
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Public Function GetBytesFromFile(ByVal filePath, ByVal nLength as Integer) As Byte()
      '...
     
      'declencher le Départ du traitement
      Dim length As Integer = CInt(fs.Length)
      Dim steps As Double = length/nlength
      Dim e As New ProgressStartingEventArgs(length, steps)
      RaiseEvent ProgressStarting(Me, e)
      '...
     
      'declencher l'evenement à chaque boucle
      RaiseEvent ProgressStarting()
      '...
     
      'declencher l'évenement de fin de traitement
      RaiseEvent ProgressEnded ()
      '...
    End Function
    L'utilsation graphique dans la Form sera de récupérer simplement ses evenements et de les utiliser pour le paramétrage du Progressbar et sa gestion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private WithEvents MyFileManager As New FileManager
    Public Sub MyFileManager_ProgressStarting(ByVal sender As Object, ByVal e As ProgressStartingEventArgs) Handles MyFileManager.ProgressStarting
      'paramétrer le progressbar à l'aide de e.FullLength et e.StepsCount
    End Sub
    Public Sub MyFileManager_ProgressSteping() Handles MyFileManager.ProgressSteping
      'par exemple
      MonProgressBar.PerformStep
    End Sub
    Public Sub MyFileManager_ProgressEnded() Handles MyFileManager.ProgressEnded 
      traiter la progression terminée
    End Sub
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  5. #5
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    merci bcp
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VS.NET] [WinForms] [VB.NET] Créer un installeur
    Par Fruity dans le forum Windows Forms
    Réponses: 3
    Dernier message: 21/05/2008, 15h50
  2. [VB.Net] Créer un code barre 128
    Par olivc dans le forum ASP.NET
    Réponses: 7
    Dernier message: 25/01/2008, 19h52
  3. [VB.NET]Créer une instance par page
    Par Dnx dans le forum ASP.NET
    Réponses: 20
    Dernier message: 31/10/2005, 13h22
  4. [VB.Net] Créer une DataBase Access
    Par toubib dans le forum Windows Forms
    Réponses: 7
    Dernier message: 09/10/2005, 19h27
  5. [VB.NET] Créer et remplir un nouveau fichier Access
    Par Manue.35 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 18/07/2003, 15h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo