concaténation de résultat de boucles (VB)

concaténation de résultat de boucles (VB) - VB/VBA/VBS - Programmation

Marsh Posté le 16-09-2007 à 22:10:01    

pour générer toute les combinaisons d’association possible ex : (111. 112. 113. 121. 131 ...jusqu’à 333) en VB.
J'ais 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;  
Voiçi le seul code que j'ai pus créer, mais il ne fonctionne pas!
 
 
Dim 1 As string, 2 As string, 3 As string
1=1
2=2
3=3
Etiquette1:
 If condition="333" Then  
   Goto Etiquette2  'renvoie à la fin
 
 Else   'sinon aff générer jusqu’à 333
   print "1" & "2" & "3" to "333"
 
 End If
 
Goto Etiquette1
 
Etiquette2:
 
End sub
---------
Est-ce que quelcun aurait-il une idée de code plus juste ,svp?
 
En esperant avoir eu une reponse
je vous remercie encore et bonne apres midi à tous
merci
 
Marcus


Message édité par maxdor le 16-09-2007 à 22:43:17
Reply

Marsh Posté le 16-09-2007 à 22:10:01   

Reply

Marsh Posté le 17-09-2007 à 09:39:28    

Attention, les étiquettes c'est à proscrire dans 99% des cas.
 
Pour faire une boucle c'est  

Code :
  1. for i=1 to 3
  2.     'code qui dépend de i
  3. next


pour imbriquer les boucles, il faut impriquer les for

Code :
  1. for i = ....
  2.     for j = ....
  3.         for k = ...
  4.         next
  5.     next
  6. next


 
Aller, le reste du peux y arriver tout seul
 
Bon courage...
 
Christophe

Reply

Marsh Posté le 18-09-2007 à 22:56:11    

Merci,
On ma bien aidé et sa fonctionne maintenant.
 
Marc

Reply

Marsh Posté le 19-09-2007 à 08:39:26    

et la solution que tu as choisi et celle de dream ou une autre ? pense à ettre ta soluce pour aider les personnes qui peuvent avoir le même problème.

Reply

Marsh Posté le 19-09-2007 à 23:11:03    

Voilà le code juste qu'on ma aidé à créer:
 
 
 
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
 
 
@+

Reply

Marsh Posté le 19-09-2007 à 23:15:03    

Je voulais dire que pour les valeurs  numérique c'est assez simple à comprendre et je t'en remérci;
 
Mais par example pour faire la même chose sauf que les valeurs sont dans un fichier texte séparé par un éspace  
(ou virgule)
Alors comment déclarer des boucles imbriqué pour chaque valeur qu'il y aurait ?
 
Open C:fichier1.txt
 for i= (1ére valeur du fichier)
 
If (encore des valeurs)
  imbriqué les boucle  
 
Je sais que c'est faut mais je pense qu'il faud les prendre comme des chaine de caractère . (¿)
 
Qu'en pense-tu ? C'est compliqués ?
 
Merci .

Reply

Marsh Posté le 21-09-2007 à 23:25:37    

On ma proposé cette solution là:
 
--------------------
Sub test()
Dim a(3) As String
fich = "e:\_tmp\liste.txt"
Dim i As Integer
n = FreeFile
Open fich For Input As #n 'ouverture du fichier
While Not EOF(n) ' et lecture tant qu'on n'est pas arrivé à la fin
Input #n, a(i)
i = i + 1
Wend
End Sub
 
et ensuite tu fais travailler tes boucles i, j, k sur les indices du tableau
si j=0 alors a(j) => "1" etc
---------------------
 
Mais il faud  les mettre dans une variable tableau
avec liste.txt de la forme "1","2","3"
 
J'arrive pas à piger le code et me demande si c'est le seul qui peut faire sa: (ex : (111. 112. 113 ...jusqu’à 333).
 
Je vais continué à chercher la solution.
Aller @+
 

Reply

Marsh Posté le 22-09-2007 à 23:43:43    

Je crois avoir une solution pour bientôt
@+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed