Aller au contenu

boucle for a l\'interieur d\'un select case possible?


Messages recommandés

Posté(e)

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

Posté(e)

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'occurence

ex : 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 sortie

ex 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

Posté(e)

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

 

Posté(e)

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

 

Posté(e)

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 X

et ensuite je ferai un "Select Case"

 

Voilà

 

@+

Posté(e)

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.

 

 

voilivoilou

merci d'avance

 

fabientoupeti

  • 2 semaines après...
Posté(e)

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 Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité