begin process at 2012 02 12 11:53:13
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VB.NET

 > BARRE D'AVANCEMENT DANS UNE APPLICATION CONSOLE

BARRE D'AVANCEMENT DANS UNE APPLICATION CONSOLE


 Information sur la source

Note :
5 / 10 - par 2 personnes
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :VB.NET Source .NET ( DotNet ) Classé sous :console, barre, avancement, progression Niveau :Débutant Date de création :28/06/2007 Date de mise à jour :03/07/2007 18:12:46 Vu / téléchargé :9 227 / 450

Auteur : BERGOUGNOUX

Ecrire un message privé
Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Cette source sert à montrer comment réaliser une barre d'avancement dans une application console.
Elle utilise ici les commandes System.Threading.Thread.Sleep pour avancer, mais on peut remplacer ces lignes de code par d'autres commandes, par exemple la copie d'un fichier.
Pour créer une barre, il suffit de taper CreerBarre(Texte qui va s'afficher, Couleur de la barre, Couleur du texte, Couleur de fond de la console, Intervalle).

Source

  • 'Le code de l'application (Merci à ghuysmans99 !) :
  • Module Module1
  • Private Sub Progress(ByVal SleepVar As Long)
  • Dim i As Integer
  • For i = 1 To 38
  • Console.Write(" ")
  • System.Threading.Thread.Sleep(SleepVar)
  • Next i
  • End Sub
  • Private Sub WriteRien(ByVal NOF As Integer)
  • Dim i As Integer
  • For i = 1 To NOF
  • Console.WriteLine("")
  • Next i
  • End Sub
  • Private Sub CreerBarre(ByVal Texte As String, ByVal CouleurBarre As System.ConsoleColor, ByVal CouleurTexte As System.ConsoleColor, ByVal FondConsole As System.ConsoleColor, ByVal IntervalleMilliSeconds As Integer)
  • Console.BackgroundColor = FondConsole
  • Console.ForegroundColor = CouleurTexte
  • Console.Clear()
  • WriteRien(5)
  • Console.SetCursorPosition((Console.WindowWidth - Len(Texte)) / 2, 5)
  • Console.WriteLine(Texte)
  • WriteRien(6)
  • Console.WriteLine(" |--------------------------------------|")
  • Console.WriteLine(" | |")
  • Console.WriteLine(" |--------------------------------------|")
  • Console.BackgroundColor = CouleurBarre
  • Console.SetCursorPosition(20, 13)
  • Progress(IntervalleMilliSeconds)
  • Console.BackgroundColor = FondConsole
  • End Sub
  • Sub Main()
  • Console.CursorVisible = False
  • Console.Title = "Exemple de barre d'avancement en ligne de commandes"
  • Console.Clear()
  • CreerBarre("Exemple de barre d'avancement jaune dans une fenêtre console.", ConsoleColor.Yellow, ConsoleColor.Yellow, ConsoleColor.Blue, 200)
  • System.Threading.Thread.Sleep(3000)
  • Console.Clear()
  • CreerBarre("Et une autre barre d'avancement, rouge cette fois.", ConsoleColor.Red, ConsoleColor.Yellow, ConsoleColor.Blue, 100)
  • System.Threading.Thread.Sleep(3000)
  • End Sub
  • End Module
'Le code de l'application (Merci à ghuysmans99 !) :

Module Module1
    Private Sub Progress(ByVal SleepVar As Long)
        Dim i As Integer
        For i = 1 To 38
            Console.Write(" ")
            System.Threading.Thread.Sleep(SleepVar)
        Next i
    End Sub
    Private Sub WriteRien(ByVal NOF As Integer)
        Dim i As Integer
        For i = 1 To NOF
            Console.WriteLine("")
        Next i
    End Sub
    Private Sub CreerBarre(ByVal Texte As String, ByVal CouleurBarre As System.ConsoleColor, ByVal CouleurTexte As System.ConsoleColor, ByVal FondConsole As System.ConsoleColor, ByVal IntervalleMilliSeconds As Integer)
        Console.BackgroundColor = FondConsole
        Console.ForegroundColor = CouleurTexte
        Console.Clear()
        WriteRien(5)
        Console.SetCursorPosition((Console.WindowWidth - Len(Texte)) / 2, 5)
        Console.WriteLine(Texte)
        WriteRien(6)
        Console.WriteLine("                   |--------------------------------------|")
        Console.WriteLine("                   |                                      |")
        Console.WriteLine("                   |--------------------------------------|")
        Console.BackgroundColor = CouleurBarre
        Console.SetCursorPosition(20, 13)
        Progress(IntervalleMilliSeconds)
        Console.BackgroundColor = FondConsole
    End Sub


    Sub Main()
        Console.CursorVisible = False
        Console.Title = "Exemple de barre d'avancement en ligne de commandes"
        Console.Clear()
        CreerBarre("Exemple de barre d'avancement jaune dans une fenêtre console.", ConsoleColor.Yellow, ConsoleColor.Yellow, ConsoleColor.Blue, 200)
        System.Threading.Thread.Sleep(3000)
        Console.Clear()
        CreerBarre("Et une autre barre d'avancement, rouge cette fois.", ConsoleColor.Red, ConsoleColor.Yellow, ConsoleColor.Blue, 100)
        System.Threading.Thread.Sleep(3000)
    End Sub

End Module


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

28 juin 2007 10:00:40 :
Erreur dans le zip.
28 juin 2007 11:42:26 :
Allègement du code : utilisation de Private Sub Progress(ByVal SleepVar As Long) et de Progress(200), Progress(100)
29 juin 2007 11:55:16 :
Utilisation de WriteRien et automatisation de la barre (CreerBarre).
03 juillet 2007 18:12:46 :
Changement du nom d'utilisateur dans le code suite à une réclamation d'un membre (ghuysmans99 ^^) !!

 Sources du même auteur

Source avec Zip Source avec une capture BARRE DE TITRE AU STYLE VISTA SOUS VB6
Source avec Zip Source avec une capture PROGRESS BAR AU STYLE XP MEDIA CENTER

 Sources de la même categorie

Source .NET (Dotnet) MODIFICATION DATE DE WINDOWS EN VB.NET ET VBA par us_30
Source avec Zip Source avec une capture Source .NET (Dotnet) ENVOI DE MAIL AVEC PIÈCE JOINTE par EhJoe
Source .NET (Dotnet) AMUSONS NOUS AVEC UN LABEL ^^ par Adn56
Source avec Zip Source avec une capture Source .NET (Dotnet) UN NAVIGATEUR INTERNET EN VB.NET par azrti
Source avec Zip Source .NET (Dotnet) CONVERSION DE DEVISE MONAITAIRE VIA UN SERVICE WEB par bigmonkey7

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture PROGRESS BAR AU STYLE XP MEDIA CENTER par BERGOUGNOUX
Source avec Zip Source avec une capture Source .NET (Dotnet) PROGRESSBAR PERSONNALISABLE par olixelle
Source avec Zip Source avec une capture PROGRESSBAR DANS UN STATUSBAR SIMPLEMENT par bouv
Source avec Zip Source avec une capture OCX PROGRESS BARRE AVEC TEXTE D'AVANCEMENT par jack
Source avec Zip PROGRESSBAR SANS OCX par SirGus

Commentaires et avis

Commentaire de BERGOUGNOUX le 28/06/2007 10:06:33

Voilà, laissez vos commentaires ^^

Commentaire de ghuysmans99 le 28/06/2007 10:45:21

il faut que tu utilises des boucles. ajoute ça à ton code :

# Private Sub Progress(SleepVar As Long)
#  Dim i As Integer
#  For i = 1 To 37
#  Console.Write (" ")
#  System.Threading.Thread.Sleep (SleepVar)
#  Next i
# End Sub

remplace ça :

#  Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")
# System.Threading.Thread.Sleep(200)
# Console.Write(" ")

par ça :

# Progress 200

_________________________________________________________________

et çà :

#  Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")
# System.Threading.Thread.Sleep(100)
# Console.Write(" ")

par ça :

# Progress 100

_____________________________________________________________________-

ps: remplace "# " par rien. c'est juste pour distinguer le code de mes commentaires !

Commentaire de hvb le 28/06/2007 11:19:46

clair que ghuysmans99 a raison....
il faut nettoyer tout ça, c'est de la bidouille totale pour l'instant.

Commentaire de BERGOUGNOUX le 28/06/2007 11:43:04

Voilà, c'est fait... merci beaucoup !

Commentaire de ghuysmans99 le 28/06/2007 14:50:53

et aussi : ajoute ça :

# Private Sub WriteRien(NOF As Integer)
# Dim i As Integer
#  For i = 1 To NOF
#   Console.WriteLine ("")
#  Next i
# End Sub

remplace ça :

# Console.WriteLine("")
# Console.WriteLine("")
# Console.WriteLine("")
# Console.WriteLine("")
# Console.WriteLine("")
# Console.WriteLine(" Voici un petit exemple de barre d'avancement jaune.")
# Console.WriteLine("")
# Console.WriteLine("")
# Console.WriteLine("")
# Console.WriteLine("")
# Console.WriteLine("")
# Console.WriteLine("")

par ça :

# WriteRIEN 5
# Console.WriteLine(" Voici un petit exemple de barre d'avancement jaune.")
# WriteRIEN 6
___________________________________________________________

et ça :

# Console.WriteLine("")
# Console.WriteLine("")
# Console.WriteLine("")
# Console.WriteLine("")
# Console.WriteLine("")
# Console.WriteLine(" Et une autre barre d'avancement, rouge cette fois.")
# Console.WriteLine("")
# Console.WriteLine("")
# Console.WriteLine("")
# Console.WriteLine("")
# Console.WriteLine("")
# Console.WriteLine("")

par ça :

# WriteRIEN 5
# Console.WriteLine(" Et une autre barre d'avancement, rouge cette fois.")
# WriteRIEN 6

________________________________________________________________-

ps: remplace "# " par rien. c'est juste pour distinguer le code de mes commentaires !

Commentaire de BERGOUGNOUX le 29/06/2007 11:57:56

Merci, ça réduit considérablement la taille du Sub Main()...!

J'ai aussi ajouté CreerBarre, qui automatise la création de la barre et l'avancement, et qui positionne automatiquement le texte qui doit s'afficher au milieu de la ligne 6 de la console.

Commentaire de ghuysmans99 le 29/06/2007 19:01:22

au fait : tu ne connaissais pas les boucles ??

Commentaire de BERGOUGNOUX le 30/06/2007 10:44:25

Si si, je connaissais, mais je n'arrivais pas à les utiliser, à chaque fois j'avais le problème des boucles infinies avec While...Wend ou End While.

Je ne connaissais pas For i = 1 To .... mais maintenant je comprends mieux le système des boucles. Je crois que je vais utiliser For à la place de While dorénavant, ca me semble plus simple et plus efficace.

Commentaire de ghuysmans99 le 30/06/2007 10:59:53

en fait : while a une condition ... regarde :

Do
Loop While 1=1 'ca ne s'arrêtera JAMAIS

While 1=1 'ca no plus !
Wend

_________________________________

Dim i as Integer
i = 0 'optionnel! initialisé à 0

Do
i = i + 1
debug.print i
Loop While i <= 10 ' 0 -> 10

debug.print "finiiiiiiii!"

Commentaire de BERGOUGNOUX le 30/06/2007 12:51:30

Ok merci !!

Commentaire de ghuysmans99 le 02/07/2007 17:37:55

Me revoilà ... encore quelque chose à remplacer :
remplace ça :

# Private Sub Progress(ByVal SleepVar As Long)
# Dim i As Integer
# For i = 1 To 38
# Console.Write(" ")
# System.Threading.Thread.Sleep(SleepVar)
# Next i
# End Sub
# Private Sub WriteRien(ByVal NOF As Integer)
# Dim i As Integer
# For i = 1 To NOF
# Console.WriteLine("")
# Next i
# End Sub

par ça :

# Private Sub Progress(ByVal SleepVar As Long)
#  WriteRien 38
#  System.Threading.Thread.Sleep (SleepVar)
# End Sub
#
# Private Sub WriteRien(ByVal NOF As Integer)
#  Dim i As Integer
#  For i = 1 To NOF
#   Console.WriteLine ("")
#  Next i
# End Sub

________________________________________________________________-

ps: remplace "# " par rien. c'est juste pour distinguer le code de mes commentaires !

Commentaire de BERGOUGNOUX le 03/07/2007 10:33:42

Ca ne fonctionnera pas :

1)WriteRien utilise WriteLine et non pas Write : à chaque fois VB sautera une ligne au lieu d'écrire un espace.

2)Utiliser WriteRien 38 ajouterait tous les espaces d'un coup sans attendre d'intervalles, en supposant qu'on utilise Write et non pas WriteLine.

3)Si on utilise For i = 1 To 38, VB recommencera l'opération jusqu'à ce que la variable i valle 38, la barre progressera donc progressivement (c'est le cas de le dire !). Si on utilise ton code, VB ne le fera qu'une fois, vu qu'il n'y a pas de boucle, et on se retrouve donc au 2) : les 38 espaces seront ajoutés en même temps, la barre progressera donc d'un coup.

Voilà, j'espère que mes explications sont compréhensibles...

Commentaire de ghuysmans99 le 03/07/2007 16:06:08

désolé .. au fait : c'est ghuysmans99 et pas GHUYSMANNS99

Commentaire de BERGOUGNOUX le 03/07/2007 18:10:35

Oups désolé !

Commentaire de ghuysmans99 le 03/07/2007 18:43:12

oops ...

#  Private Sub WriteRien(ByVal NOF As Integer)
# Dim i As Integer
# For i = 1 To NOF
                                    # Console.WriteLine(" ")
# Next i
# End Sub

Commentaire de arnaud2006 le 18/08/2008 20:17:39

Merci

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Barre de progression [ par eric mamique ] Bonjour,A travers ce message, je t'adresse mes félicitations pour ce site. J'ai trouvé des codes trés interessants pour mes applications.Cependant, je comment fait on une barre de progression [ par zekmek ] vous savez comme dans les programmes d'installation de logiciel. moi je me suis fait un prog vb qui envois une mailing list a 7000 candidats a peu pre AU SECOURS !!!!!!!!! Copie de dossier avec barre de progression [ par jbdiogon ] AU SECOURS !!!!!!!!Je cherche à copier un dossier entier (ça je sais faire), mais je voudrais y associer une barre de progression, ou au mois détecter Barre de progression [ par Misutsu ] salut à tousVoilà, j'ai trouvé la barre de progression dans la liste des composants, mais je ne vois pas comment la configurer, comment la synchronise Comment faire une barre de progression avec un fichier uploader avec PHP ? [ par laurent.H ] Comment faire une barre de progression avec un fichier uploader avec PHP ? Je cherche un module permetant de faire afficher une barre de progression [ par Nitocris ] J'ai créer une application access 2000 dans la quel j'aimerais bien intégrer une barre de progression lors des opération longue. Je n'es pas vraiment Je cherche un module permetant de faire afficher une barre de progression [ par Nitocris ] J'ai créer une application access 2000 dans la quel j'aimerais bien intégrer une barre de progression lors des opération longue. Je n'es pas vraiment Je cherche un module permetant de faire afficher une barre de progression [ par Nitocris ] J'ai créer une application access 2000 dans la quel j'aimerais bien intégrer une barre de progression lors des opération longue. Je n'es pas vraiment Je cherche un module permetant de faire afficher une barre de progression [ par Nitocris ] J'ai créer une application access 2000 dans la quel j'aimerais bien intégrer une barre de progression lors des opération longue. Je n'es pas vraiment live avi avec barre de progression et barre de controle [ par ticapix ] Bonjourj'aurai aime savoir comment lire un fichier avi (bon ça c'est facile , il y a deja pleins de sources )avec la possibilité -de faire avance rapi


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,763 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales