Petit jeux ludique d'unstruction VB
Forum Programmation : Petit jeux ludique d'unstruction VB
Dans une fenêtre d'exécution je voudrais un petit jeu d'instruction simple avec 3 variables (1, 2 et 3) pour générer toute les combinaisons d'association possible ex : (111. 112. 113. 121. 131 ...jusqu'à 333) soit je pense 31 combinaison possible dans l'ordre croissant.
Et générer le tout dans un fichier texte nommé « test » je pense qu'il faudra déterminer le chemin d'accès.
J'aimerais pouvoir rajouter une virgule accompagné d'un espace après chaque valeur de variable (111, 112, 113, ...).
Afin de peaufiner mes connaissances j'aimerais que l'on m'aide à écrire le code en VB6 s'il vous plaît.
Je ne sais pas vraiment si sa parait difficile, quand pensez-vous ?
Merci,
Marcus.
*****@yahoo.fr
petit
Message édité par OmaR le 05-09-2007 à 18:09:41
Bonjour,
J'ai enlevé votre email, vous risquez de vous faire spammer.
Pour faire ça, vous avez besoin de faire 3 boucles; de 1 à 3 à chaque fois, et mettre dans une variable la concaténation du résultat des 3 boucles à chaque boucle; et de mettre cette variable dans un fichier.
Répondre à OmaR
Merçi pour ta réponse omar,
Pour les boucle je vois le genre d'unstruction mais comment faire et mettre dans une variable la concaténation du résultat des 3 boucles à chaque boucle ? C'est compliqué. nom ?
Apparament c'est vous qui géré ce forum là ? Merçi d'avoir retiré mon maile ...j'avais hésité de le mettre...
@+
FileName = app.path & "test.txt"
Open FileName For Append As #1
For Un to 3
For Deux to 3
For Trois to 3
Chiffre = Un & Deux & Trois
Print #1, Chiffre & ", "
Next
Next
Next
Close #1
Voila.
EDIT: Voila une petite explication au cas ou le code est incomprehensible.
On entre dans la premiere bocle, puis dans la deuxieme, puis dans la troisieme. Puis on ajoute ( pas comme en math ) les nombres ce qui donne 111 la premiere fois, puis comme on est a l'interieur de la troisieme boucle et que Trois < 3, Trois est incrémenté de 1 donc on obtien 112. Et ainsi de suite.
Message édité par Hrusdik le 09-09-2007 à 00:55:58
Répondre à Hrusdik
Salut,
Merci pour ton aide hrusdik, c gentil.
(j'ai pas pu me connecter depuis 1 semaine à cause de mon PC. J'utilise maintenant celui d'un ami)
Ton code est vraiment intérressant...je but un peut sur (#1, Chiffre & ", " ) mais je pense bientôt tout comprendre !
Merci encore @+
Message édité par maxdor le 16-09-2007 à 23:21:32
FileName = app.path & "test.txt"
Open FileName For Append As #1 ' On ouvre le fichier "text.txt" qui se trouve dans le meme repertoire que l'executable
For Un to 3
For Deux to 3
For Trois to 3
Chiffre = Un & Deux & Trois
Print #1, Chiffre & ", " ' premiere boucle : Chiffre = "111" on rajoute ", " ca donne "111, " puis a la deuxieme boucle Chiffre = "112" on ajoute ", " ca donne "112, " on place ca dans le flux d'entrée du fichier dans le quel on a deja "111, " donc ca fait "111, 112, " etc ... mais le seul hic c'est qu'en arrivant a 333 on aura "333, " mais c'est facilement resolé avec un if Chiffre = "333" then Print #1, Chiffre : Close #1
Next
Next
Next
Close #1
Message édité par Hrusdik le 16-09-2007 à 23:26:40
Répondre à Hrusdik
C encore moi!
Si je voudrais rajouter à toute ces valeur une autre chaine Ex: A111, A112
alors je pense faire comme sa:
Print #1, & "A" ,Chiffre & ", "
Est-ce qu'il y aurait des erreur là ?
Merci
Message édité par maxdor le 16-09-2007 à 23:27:08
Oula mauvaise syntaxe
Ca sera : Print #1, "A" & Chiffre & ", "
Le caractere A est ajoutée a chiffre puis ", " leur est ajoutée.
Répondre à Hrusdik
merci
J'essais un autre truc,
@+
Je voulais dire que pour les valeur numérique c'est facile à comprendre et je t'en remérci;
Mais plus dure pour des chaine
Par example pour faire une contaténation de boucle imbriqué avec 4 chaine (A, B, C, D) mais affiché seulement par trois caractère maximum; Ex:
AAA AAB AAC AAD ABA ...DDD
Voici mon idée:
Je ne sais pas comment limiter .
@+
Eh bien tu n'a qu'a utiliser leur valeurs ASCII :
A = 97 je crois, B = 98 etc ...
Et tu utilise la fonction Chr(le_code_de_la_lettre_ici) pour "convertir" ton code ASCII en Symbole lui correspondant.
Donc tes For tu les fais comme ca :
For PremiereLettre = 97 to 100 ' jusqu'a D
Répondre à Hrusdik
merci hrusdik,
Je vais voire sa,
Merci@+
ps: à chaque fois le temps est trop juste.
For A=97 To 100 For B=98 To 100
For C=99 to 100
For D=100
Résultat = Chr(97) & Chr(98) & Chr(99) & Chr(100)
Print #1, Résultat & " "
Next
Next
Next
Next
End
__________________________
Vérsion Boite MSgbox:
For A=97 To 100
For B=98 To 100
For C=99 to 100
For D=100
Résultat = Chr(97) & Chr(98) & Chr(99) & Chr(100)
Print MSgbox, Résultat & " "
Next A
Next B
Next C
Next D
End
__________________________________
La bonne version je pense (en MSgbox):
For A=97 To 100
For B=98 To 100
For C=99 to 100
For D=100
Résultat = Chr(A) & Chr(B) & Chr(C) & Chr(D)
Print MSgbox, Résultat & " "
Next A
Next B
Next C
Next D
End
Note: J'ésite entre les deux ;
Print MSgbox, Résultat & " " Ou:
Debug.Print Résultat & " " (exécution seulement)
Voilà, j'espert ne pas mettre gourré.
@+
Voil
Salut hrusdik,
Est-ce que tu peus m'aider pour ce code ?
Merci et bon weekend @+
marc
For A=97 To 100
For B=97 To 100
For C=97 To 100
For D=97 To 100
Résultat = Chr(A) & Chr(B) & Chr(C) & Chr(D)
MSgbox Résultat & ", "
Next A
Next B
Next C
Next D
---------------------------------------------------------
For A=97 To 100
For B=97 To 100
For C=97 To 100
For D=97 To 100
Résultat = Chr(A) & Chr(B) & Chr(C) & Chr(D)
Print #1, Résultat & ", "
Next A
Next B
Next C
Next D
Voila
Répondre à Hrusdik
Merci,
Finalement je comprend mieux maintenant.
Merci par tes bonne éxplications Hrusdik
marc @+
#l
Salut Hrusdik,
Pour mon dérnier postage sur ce sujet là, je voudrais résoudre cette derniére si elle est juste :
1) Faire la même chose mais Avec une variable tableau "a"
Voiçi mon code:
Sub test()
Dim a As string 'ou plutôt a(2) ?
a(0)= A, a(1)= B, a(2)= C
Dim i As integer
For i = 0 To 2
For j = 0 To 2
For k = 0 To 2
Résultat = (a(i) & a(j) & a(k))
Print #1, Résultat & ", "
Next k
Next j
Next i
End
2) remplacer 0 To 2 par une variable:
Sub test()
Dim Chiffre1, Chiffre2, As integer
Chiffre1 = 0
Chiffre2 = 2
Dim a As string
a(0)= A, a(1)= B, a(2)= C
For i = Chiffre1 To Chiffre2
For j = Chiffre1 To Chiffre2
For k = Chiffre1 To Chiffre2
Résultat = (a(i) & a(j) & a(k))
Print #1, Résultat & ", "
Next k
Next j
Next i
End
Voilà voilou
merci bien, @+
marc
Message édité par maxdor le 14-10-2007 à 23:16:50
Salut,
En attendant une réponse utile, je vous souhaite un bon weekend à tous.
marc
Finalement je me suis trompé pour la 1) .
Le code était plutôt :
Sub test()
Dim a As string 'ou plutôt a(2) ?
a(0)= A, a(1)= B, a(2)= C
Dim i As integer
For i = a(0,1,2)
For j = a(0,1,2)
For k = a(0,1,2)
Résultat = a(i) & a(j) & a(k)
Print #1, Résultat & ", "
Next k
Next j
Next i
End
Voilà, je pense que tout est juste.
@+
marc
peux tu reexpliquer ton probleme stp ?
PS: Tes declaration de table sont faux
Dim a(taille) as type_de_variable
apres je comprends pas ce que tu voeux faire ^^
la syntaxe est trop incorrecte.
Répondre à Hrusdik
En faite c'est une variable tableau a()
@+
je reviend poster (jai un prob)
merci
Salut.
Je voudrais faire comme au début.
génerer des concaténationS avec pour i = A à B
Donc utiliser une vaiable tableau a(0)= A ; a(1)=B ; a(2)= C
puis faire comme avec "i = 0 to 2 " mais avec des chaines et une variable tableau à la place de 0 à 2.
A la fin sa doit générer AAA , AAB , AAC , ... CCC .
Voilà, j'ésper avoir répondu clairement .
peut étre une éreur aussi à l'utilisation de "#"
A+
marc
Salut Hrusdik,
la syntaxe que je veus désigner est:
(mais pour "As string" je me suis peut être surement trompé)
Dim a(0) As string
Dim a(1) As string
Dim a(2) As string
a(0)= A
a(1)= B
a(2)= C
Je voudrais ensuite faire comme sa :
For i = a(0,1,2) équivaut à For i = a(0) To a(2) ; soit i = A To C
Normalement on peut utiliser des variables tableau pour faire des boucles imbriqué avec des chaines comme pour des chiffres.
Ma syntaxe "For i = a(0,1,2)" comme tu le dis est fausse alors peut être que c'est :
For i = a(2)
For i = a(2)
For i = a2)
Peut être que cette fois çi c'est juste
Marc , merci
Bonjour,
Je n'est pas pu tester ce code, mais àprés avoir fait le tours de la question "à propos de la syntaxe", je crois quelle est peut être juste, mais sa réste à être testé.
Voilà, salut @+
Un tableau est declaré comme suit : Dim a() as String
Pour affecter les valeur : a(1) = "B" , a(2) = "C" etc ...
Pour extraire c'est pareil.
Je te laisse reflechir.
( dsl je suis pressé )
Répondre à Hrusdik
Salut,
Je n%u2019est pas puvenir plus tôt car je n%u2019avais plus accés à internet.
Pour revenire sur la façon pour extraire je pense que c%u2019est la même chose , sauf pour affecter on choisi « string » et on ajoute les guillemets.
Code :
Dim a As string 'ou plutôt a(2) ?
a(1)= %u201CA%u201D , a(2)= %u201CB%u201D , a(3)= %u201CC%u201D
Dim i , j , k As string
For i = a(1,2,3)
For j = a(1,2,3)
For k = a(1,2,3)
Résultat = a(i) & a(j) & a(k)
Print , Résultat & ", "
Next k
Next j
Next i
End
Voila, je crois que cette fois-ci c%u2019est peut être juste.
Merci
A+ , marc
PS : sinon on peut aussi peut être écrire i = a(1) To a(3)
Message édité par maxdor le 11-10-2007 à 22:33:15
For i = a(1,2,3)
c'est faux
Dim a() as String
a(1)= “A”
a(2)= “B”
a(3)= “C”
For 1 to 3
For 1 to 3
For 1 to 3
Résultat = a(i) & a(j) & a(k)
Print , Résultat & ", "
Next k
Next j
Next i
Voila.
Message édité par Hrusdik le 11-10-2007 à 22:36:40
Répondre à Hrusdik
Dans le meme genre t'a http://googleforidiots.com
Mais bon ca n'a rien avoir avec le sujet
Message édité par Hrusdik le 11-10-2007 à 22:45:36
Répondre à Hrusdik
C le site que j'avais posté sa!
ok je vois bien maintenant le fonctionnement.
merci
A+
Salut,
Juste pour dire qu'au début de mon post sur les variables tableau j'avais trés bien écrit la boucle. (message= #1)
Elle était juste mais c'était juste au niveau des déclaration de variable qu'il y avait une faute,
c'était les guillemet qu'il manquait a(1)= "A" et non a(1) = A
sinon le réste du code était juste.
Donc pour le lien je pense qu'il est en trop.
A+
Marc
Message édité par maxdor le 14-10-2007 à 23:19:37
Il y a 1382 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
