fabientoupeti Posté(e) le 7 juin 2007 Posté(e) le 7 juin 2007 bonjour, j'aimerais savoir si il etait possible de créer une boucle for à l'interieur d'un select case en vb6.je veux faire ça parce que je ne connais pas à priori le nombre de cas que je vais devoir tester. si cela n'est pas possible, y aurait-il une autre solution pour arriver à un résultat similaire (autres boucles...)? merci d'avance pour vos réponses Fabientouepti
BIM G CO Posté(e) le 7 juin 2007 Posté(e) le 7 juin 2007 Ne connaissant pas trop le langage Visual Basic 6 je vais te donner des pistes généralistes (piquées sur mes cours d'informatiques) La boucle "POUR" est une boucle dont on connait le nombre d'occurenceex : for a in (1 3 5 6 8) La boucle "TANT QUE" est une boucle dont on connait la condition d'entrée de la boucle.ex While i <> 0 La boucle "Repete JUSQUE" est une boucle dont on connait la condition de sortieex repeat ......... until i<0 En espérant t'avoir aidé. Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office PlaquetteDeplianteMars2024.pdf
fabientoupeti Posté(e) le 7 juin 2007 Auteur Posté(e) le 7 juin 2007 Merci maximilien pour ton aide En fait ce que j'aimerais faire c'est incorporer une boucle for entre select case et le premier case voici exemple: Select Case t1 For X = 1 To cantidad - 2 Case 5 * X sum(X) = Sqr(LeTableau(j)(3) ^ 2 + LeTableau(j)(4) ^ 2 + LeTableau(j)(5) ^ 2) sum(X) = Round(sum(X), 5) af(X).writeline (sum(X))Next X mais quand je fais ça mon programme ne se lance pas (message d'erreur) et je ne sais pas ce qui le gêne. en ce moment chaque cas 5,10,15,20...sont ecrit explicitement mais pour la finalité de mon programme faut que je trouve une solution d'automatiser cela parce que par la suite je ne vais plus connaitre cantidad,ca va etre un parametre à renseigner au lancement du programme. voilivoilou en esperant avoir été clair. merci d'avance fabientoupeti
fabientoupeti Posté(e) le 7 juin 2007 Auteur Posté(e) le 7 juin 2007 je viens de lire plus precisement le message d'erreur, il me dit qu'il n'est pas possible de mettre autre chose qu'un commentaire entre select case et le premier case...ça ne m'arrange pas cela. avant a la place de l'instruction select case j'utilisais l'instruction if...elseif mais ce n'es pas non plus possible d'introduire une boucle for juste avant le elseif... là vraiment je ne sais pas comment solutionner mon probleme?? je vais continuer à chercher mais si quelqu'un a une idee je suis preneur parce que là pour l'instant j'avoue ne pas trop savoir comment faire. voilivoilou merci d'avance pour les aides que vous pourrez m'apporter fabientoupeti
PascalM Posté(e) le 7 juin 2007 Posté(e) le 7 juin 2007 Bonjour Je viens de regarder ton code et je me demande si tu as vraiment besoin du "Select Case" ;) En tout cas, je ne pense pas que l'on puisse mettre une boucle For dans le case.Le "Select case" attend une variable Je mettrai ja boucle "For" qui incrémente le Xet ensuite je ferai un "Select Case" Voilà @+
fabientoupeti Posté(e) le 7 juin 2007 Auteur Posté(e) le 7 juin 2007 Merci pascalM pour ton aide, je viens d'essayer un truc mais ça ne fonctionne pas bien mieux, je n'ai plus de message d'erreur mais ce n'est pas pour autant que j'ai ce que je veux voici mon code des fois que quelqu'un voit une faute For X = 1 To (cantidad - 2) For j = 4 To i 'principio de lectura :linea 4 (antes son solo declaraciónes) 'j=linea y 0=pimera columna Dim t1 t1 = LeTableau(j)(0) Select Case t1 Case ls * X sum(X) = Sqr(LeTableau(j)(3) ^ 2 + LeTableau(j)(4) ^ 2 + LeTableau(j)(5) ^ 2) sum(X) = Round(sum(X), 5) af(X).writeline (sum(X)) End Select Next j Next X i vaut env 12000 c'est le nombre de ligne d'un fichier texte que je lis. voilivoiloumerci d'avance fabientoupeti
sechanbask Posté(e) le 20 juin 2007 Posté(e) le 20 juin 2007 Tu fais une boucle dans un fichier? si oui essaies : Function LECTURE() Dim MyString As String Dim mon As String Dim n As Integer 'rechercher ce qu'il y a dans le fichier... Close #1 Open "C:\Documents and Settings\" & user & "\XXX\xxx\xxx" For Input As #1 'initialise le nombre de ligne du fichier n = 0 Do While Not EOF(1) ' Effectue la boucle jusqu'à la fin du fichier. Line Input #1, MyString 'incrémente le nombre de ligne n = n + 1 Loop Close #1 'ici tu compte le nombre de ligne msgbox "nb de ligne= " & n 'puis tu fais tes déclarations End Function après tu reboucles... c'est pas un code très propre mais ça marche... Il faudrait voir du coté de redim pour redimensionné ta variable et ça normalement tu pourras le mettre dans une boucle avec ta récupération de valeur... Bon courage ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant