Listing Digits Program

Résolu
xanonyme47 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   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
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   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
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   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
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
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   Statut Membre Dernière intervention   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
xanonyme47 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
Super , ça march Maintenant MerCi <3
0
xanonyme47 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   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
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   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
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
tu as toutes les réponses ici.

Travaille et tu auras ton programme.
0
xanonyme47 Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   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