Listing Digits Program

Résolu
xanonyme47 Messages postés 17 Statut Membre -  
Polux31 Messages postés 7219 Statut Membre -
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. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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)))
    3
  2. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
  3. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
  4. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Tu as testé ?

    Tu sais faire tourner le programme pas à pas pour voir ce que contient tes variables ?
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
    1. xanonyme47 Messages postés 17 Statut Membre
       
      Super , ça march Maintenant MerCi <3
      0
  7. xanonyme47 Messages postés 17 Statut Membre
     
    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 :/
    0
  8. xanonyme47 Messages postés 17 Statut Membre
     
    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
    0
  9. xanonyme47 Messages postés 17 Statut Membre
     
    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
    0
  10. xanonyme47 Messages postés 17 Statut Membre
     
    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
    0
  11. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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 ...
    0
  12. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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

    0
    1. Polux31 Messages postés 7219 Statut Membre 1 204
       
      tu as toutes les réponses ici.

      Travaille et tu auras ton programme.
      0
  13. xanonyme47 Messages postés 17 Statut Membre
     
    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
    0
    1. Polux31 Messages postés 7219 Statut Membre 1 204
       
      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)
      0