Listing Digits Program

Résolu
salut , Je veux un programme s'il vous plaît En VB6 Qui contiens 2 textbox et un bouton ..
si on écrie un nombre " 5487 " dans textbox 1 et on clic sur le bouton , le programme affiche sur le 2éme textbox le nombre en multiline en utilisant les boucles :
5
4
8
7
Merci pour m'aider .

12 réponses

  1. Dans ton exercice, tu as un travail sur les boucles mais aussi sur la manipulation des chaînes de caractères.

    Ici un très bon tuto de silkyroad sur la manipulation des chaînes de caractère en VB6 et VBA

    Si tu déclares la variable a en string, tu ne peux pas lui assigner un numérique !!!

    Et n'oublie pas le papier et le crayon :0)))
    1. Bonjour,

      C'est un exercice ça sur les boucles ça ?

      Montres nous ce que tu as déjà fait et où ça te pose un problème.

      ;0)

      PS: "Je veux" n'est pas vraiment approprié sur un site quand on désire de l'aide. C'est ceux qui prendront la peine de se pencher sur ton problème qui décideront s'ils veulent ou pas te venir en aide.

      1. Non effectivement, ça ne peut pas fonctionner

        Tout d'abord, il faut déclarer tes variables:

        Dim a As String
        Dim i As Integer


        Ensuite l'indice i de la boucle For ... Next est numérique.
        Donc le "For i = 0 to a" ne peut pas fonctionner.

        Maintenant que tu sais ça, tu prends un papier et un crayon et tu écris l'algo de ce que tu veux obtenir.

        ;0)
        1. Tu as testé ?

          Tu sais faire tourner le programme pas à pas pour voir ce que contient tes variables ?
          1. C'est à toi de dire si ça donne le résultat attendu ou pas ^^

            Apparemment, ça devrait fonctionner.

            Tu peux améliorer encore un peu pour libérer des ressources mémoire...

            Tu n'as pas besoin de la variable a. Tu peux faire :

            For i = 1 to Len(Text1.Text)


            Tu peux encore te passer d'une autre variable. A toi de trouver ^^

            ;0)

            «Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
            Nicolas Boileau
            1. Super , ça march Maintenant MerCi <3
          2. j'ai fais ça
            Private Sub Command1_Click()
            a = Text1.Text
            For i = 0 To a
            a = Text1.Text
            b = a & vbCrLf & b
            Text2.Text = b
            Next
            End Sub
            mais ça rien a voir de ce que je veux :/
            1. Dim a As String
              Dim b As String
              Dim i As Integer
              a = val(Text1.Text)
              For i = 0 To a
              b = a & vbCrLf & b
              Next
              Text2.Text = b

              Maintenant tout est just mais le principe de program que je veux c'est pas ça
              1. MerCi Mr . Maintenant je suis un peut proch ?

                Private Sub Command1_Click()
                Dim a As Integer
                Dim b As String
                Dim c As String
                Dim i As Integer
                a = Len(Text1.Text)
                c = Text1.Text
                For i = 1 To a
                b = Left(c, i)
                Text2.Text = b & vbCrLf
                Next
                End Sub
                1. Oui Dans Ce cas Le programme Doit marche

                  Private [/contents/446-fichier-sub Sub] Command1_Click()
                  Dim a As Integer
                  Dim b As String
                  Dim c As String
                  Dim i As Integer
                  a = Len(Text1.Text)
                  c = Text1.Text
                  For i = 1 To a
                  b = mid(c, i, 1)
                  Text2.Text = b & vbCrLf
                  Next
                  End Sub
                  1. Je n'avais pas testé ton code, je viens de le faire ...

                    Je n'ai pas ce message. Par contre je n'ai pas le résultat attendu ...
                    1. Comme tu as bien bossé, voilà une solution :

                      'Mettre la propriété Multiline de Text2 à True
                      Private Sub Command1_Click()
                      Dim a As String
                      Dim i As Integer
                      
                          'Si le Text1 est vide, on sort de la Sub
                          If Text1.Text = "" Then Exit Sub
                      
                          For i = 1 To Len(Text1.Text)
                              a = Mid(Text1.Text, i, 1)
                              Text2.Text = Text2.Text & a & vbCrLf
                          Next
                      
                      End Sub

                      1. tu as toutes les réponses ici.

                        Travaille et tu auras ton programme.
                    2. Ouiii MErcI beaucoup , Tu as travailler avec variables par default du programme , je pence que ça va prend plus de memoire si le programme est grand
                      1. La mémoire va prendre le contenu saisie dans la zone Texte. Si tu déclares une variable pour lui assigner le contenu de la zone Texte, ça assigne en mémoire 2 fois la même chose ...

                        Ici ce n'est pas vraiment important et VB se charge de gérer la mémoire. Ce n'est pas la même chose avec tous les langages ... ni tous les programmes. Autant s'habituer dès le début à monopoliser le moins de mémoire possible.

                        Bon courage et bonne continuation.

                        ;0)