For each Vb

    Publicités

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)

Status
Not open for further replies.

[WonderFul

Membre
Dec 10, 2014
58
0
66
Salut tous le monde alors voilà j'ai un petit problème qui m'alaire facile a régler mais avec mes connaissance, je ne peux le régler moi même.

/!\ Ceci est un exemple n'est pas mon vrai code, c'est pour schématiser /!\

Donc enfaite j'essail, pour chaque element d'un tableau en asginer une autre:
Le Tableau est construit comme sa:

Title1
Description1
Title2
Description2
Ect...

Le code
Code:
        Dim Titles As String
        Dim Descriptions As String
        For Each Title In Titles
            For Each Description In Descriptions
                MsgBox(Title & "-" & Description)
            Next
        Next

Le truck c'est que au lieux de m'affiche le titre et la description qui corresponds, il m'affiche Titre1 puis toute les descrption, puis Titre2 puis toute les description(les même) ainsi de suite...

Voilà si quelqu'un a une solution, je lui serais très reconnaisant, Merci
 
Last edited:

[WonderFul

Membre
Dec 10, 2014
58
0
66
J'préfére utilise le code shématiser car moncode utilise une référence extérieur et est un peu plus compliquer a comprendre, je voudrais juste comprendre le principe x)

Si tu peux je peux détailler mon shéma x)
 
Last edited:

Evaelis

La Voix de la Sagesse
V
Ancien staff
Apr 28, 2010
22,949
468
1,699
Valhalla
Dim Titles As String Dim Descriptions As String For Each Title In Titles For Each Description In Descriptions MsgBox(Title & "-" & Description) Next Next
Hum, tu déclares comme un string et tu boucles dessus comme un tableau. Pour commencer ça coince.
 

Misuki

Git Wizard en freelance
V
Ancien staff
Jun 15, 2012
2,303
66
954

[WonderFul

Membre
Dec 10, 2014
58
0
66
Exact ce sont des liste

MyHand je teste sa tous de suite je te tien au courrant, merci

-Edit-

Sa ne fonctionne, pas le problème reste inchangé
 
Last edited:

Evaelis

La Voix de la Sagesse
V
Ancien staff
Apr 28, 2010
22,949
468
1,699
Valhalla
Dim Titles As String
For Each NewVar In List


For Each Title In Titles
On fait une variable Title pour chaque élement de Titles, or Titles est un string ...

Si tu boucles sur un string sans le split, tu auras évidemment la totalité de tes descriptions qui vont être affichées
 

[WonderFul

Membre
Dec 10, 2014
58
0
66
Title n'est pas un string ^^, c'est un élément dans une la liste Titles

L'élément chercher est sous forme de string mais il est déjà repertorier dans un une liste
 

Misuki

Git Wizard en freelance
V
Ancien staff
Jun 15, 2012
2,303
66
954
Dans tous les cas, je pense que les Dictionary sont beaucoup plus adaptés.
 

Evaelis

La Voix de la Sagesse
V
Ancien staff
Apr 28, 2010
22,949
468
1,699
Valhalla
Dans tous les cas, je pense que les Dictionary sont beaucoup plus adaptés.
C'est sur que les Dictionary sont bien mieux.
Title n'est pas un string ^^, c'est un élément dans une la liste Titles
"Titles est un string"
J'ai pourtant bien mis le S
Dim Titles As String
For Each NewVar In List


For Each Title In Titles
On fait une variable Title pour chaque élement de Titles, or Titles est un string ...

Si tu boucles sur un string sans le split, tu auras évidemment la totalité de tes descriptions qui vont être affichées
 

ragnarock

Membre actif
Mar 22, 2010
194
0
917
Salut,

T'as le choix sur la méthode, mais c'est sur que sans voir ton code c'est dur de deviner le moyen le plus adapté pour résoudre ton problème.

Là si on traduit ton code ça fait :
Code:
Pour chaque titre
    Pour chaque description
        Show(titre + descr)
Tu vois ou est le problème ?

En gros il te faut un moyen de relier chaque titre à sa description. Une class qui contient les 2 est une solution, un dico comme disent les autres en est une autre, une liste de tuple sinon, etc.
Sans ton code on peut juste faire des hypothèses, mais on peut pas vraiment te dire "Fais X, c'est la bonne solution".
 

[WonderFul

Membre
Dec 10, 2014
58
0
66
Bon je vais essayer de bien expliquer, en détaillant:
/!\ Schématisation/!\
Mon code est le suivant:

Je lis un document avec une fonction de ma référence que je met sous variable:

Code:
Dim Doc As DocumentLuParMaFonction

Mon document est Composer de cette façon:

MonTitre1
Résumé1
MonTitre2
Résumé2
MonTitre3
Résumé3

Grace a ma référence, il m'est possible de lister chaque element a part. donc je peux affchier séparement:

MonTitre1
MonTitre2
MonTitre3

et

Résumé1
Résumé2
Résumé3

CE NE SONT PAS des string mais plutôt une list d'élément que je met sous variable
Code:
Dim Titles As ListElementTitre
Dim Resums As ListElementResumé

donc pour le moment tous marche impec puis je creer une boucle:

Code:
        For Each Title In Titles
            For Each resum In Resums
                MsgBox(Title & "-" & resum)
            Next
        Next

Mon affichage marche, il n'y pas d'erreur dans mon code mais lordre d'affichage n'est pas celui que je veux.

Avec ce code que j'ai sa affiche:
Title1
Résumé1
Resumé2
Resumé3
Title2
Résumé1
Résumé2
Resumé3
Title3
Résumé1
Résumé2
Résumé3

Or moi ce que je veux c'est

Title1 & Résumé1
Tiltle2 & Résumé2
Title3 & Résumé3

Donc mon problème réside dans la composition de ma for each et non dans le reste du code ou dans la gestion de mes variable
 

Evaelis

La Voix de la Sagesse
V
Ancien staff
Apr 28, 2010
22,949
468
1,699
Valhalla
Alors il te faut identifier comme l'a dit MyHand
For i in XXX.length
Ou une classe qui contient les deux
 

ragnarock

Membre actif
Mar 22, 2010
194
0
917
Si les variables sont dans l'ordre (le premier titre correspond à la première description, etc.) tu fais une boucle for sur une des 2 liste et t'accède à l’élément qui correspond dans les listes à partir de l'index. Sinon il te faudra un moyen de relier les éléments de ces 2 listes.

Code:
for (i = 0; i < titres.length; i++)
    Show(titres[i] + descriptions[i])
 

Misuki

Git Wizard en freelance
V
Ancien staff
Jun 15, 2012
2,303
66
954
Si les variables sont dans l'ordre (le premier titre correspond à la première description, etc.) tu fais une boucle for sur une des 2 liste et t'accède à l’élément qui correspond dans les listes à partir de l'index. Sinon il te faudra un moyen de relier les éléments de ces 2 listes.

Code:
for (i = 0; i < titres.length; i++)
    Show(titres[i] + descriptions[i])
Je trouve ça dangereux personnellement, j'aurais préféré les dico. Mais bon, chacun ses techniques ;)
 

Evaelis

La Voix de la Sagesse
V
Ancien staff
Apr 28, 2010
22,949
468
1,699
Valhalla
Je lock.
Surtout MyHand, boucler ça prend plus de temps / perfs que les dictionnaires.
 
Status
Not open for further replies.