Listing Digits Program

Résolu/Fermé
xanonyme47 Messages postés 14 Date d'inscription dimanche 24 novembre 2013 Statut Membre Dernière intervention 5 janvier 2014 - 24 nov. 2013 à 15:39
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 25 nov. 2013 à 01:06
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

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
24 nov. 2013 à 16:25
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
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
24 nov. 2013 à 15:54
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
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
24 nov. 2013 à 16:15
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
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
24 nov. 2013 à 16:50
Tu as testé ?

Tu sais faire tourner le programme pas à pas pour voir ce que contient tes variables ?
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
Modifié par Polux31 le 24/11/2013 à 17:32
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
xanonyme47 Messages postés 14 Date d'inscription dimanche 24 novembre 2013 Statut Membre Dernière intervention 5 janvier 2014
24 nov. 2013 à 17:36
Super , ça march Maintenant MerCi <3
0
xanonyme47 Messages postés 14 Date d'inscription dimanche 24 novembre 2013 Statut Membre Dernière intervention 5 janvier 2014
24 nov. 2013 à 16:06
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
xanonyme47 Messages postés 14 Date d'inscription dimanche 24 novembre 2013 Statut Membre Dernière intervention 5 janvier 2014
Modifié par xanonyme47 le 24/11/2013 à 16:21
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
xanonyme47 Messages postés 14 Date d'inscription dimanche 24 novembre 2013 Statut Membre Dernière intervention 5 janvier 2014
24 nov. 2013 à 16:37
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
xanonyme47 Messages postés 14 Date d'inscription dimanche 24 novembre 2013 Statut Membre Dernière intervention 5 janvier 2014
Modifié par xanonyme47 le 24/11/2013 à 16:54
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
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
24 nov. 2013 à 17:43
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
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
24 nov. 2013 à 18:08
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
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
25 nov. 2013 à 01:06
tu as toutes les réponses ici.

Travaille et tu auras ton programme.
0
xanonyme47 Messages postés 14 Date d'inscription dimanche 24 novembre 2013 Statut Membre Dernière intervention 5 janvier 2014
24 nov. 2013 à 18:25
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
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
24 nov. 2013 à 18:56
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