Besoin d'aide ou d'orientation pour projet

Signaler
Messages postés
49
Date d'inscription
lundi 7 novembre 2011
Statut
Membre
Dernière intervention
22 juillet 2012
-
Messages postés
49
Date d'inscription
lundi 7 novembre 2011
Statut
Membre
Dernière intervention
22 juillet 2012
-
Bonjour à tous, je travaille actuellement sur un projet avec la boucle for each . je vous montre un exemple de ce que je voudrais faire :

private lvitem as new listviewitem
for each item1 to me.listview.items.count -1
for each item2 to me.listview.items.count -1
lvitem = me.listview.item.add("Bonjour le probleme :(")
lvitem.subitems.add(item1)
lvitem.subitems.add(item2)
next
next

donc la on est d'accord, la pemiere boucle recommencera autant de fois que l'élément item2 existe non ?
Et bien moi je voudrai simplement arriver à remplir la premiere colonne , puis ensuite la deuxieme , et enfin la troisieme sachant que je suis obligé de parcourir "me.listview.items.count" .En fait j'ai tres peu de connaissance en listviewitem .merci de prendre le temps de me répondre ou de m'orienter .

j'avais aussi pensé a ca :

for each item1 to me.listview.items.count -1 : for each item2 to me.listview.items.count -1
lvitem = me.listview.item.add("Bonjour le probleme :(")
lvitem.subitems.add(item1)
lvitem.subitems.add(item2)
next
next

Mais ici l'opérateur ":" ne convient pas c'est pour le principe de la procédure . En gros je voudrais faire une seule loop.encore merci de prendre le temps de lire ceci.

10 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
Salut

Je pense que le plus sage serait de regarder l'aide et ses exemples, ainsi que les sources qui embarquent des ListView, pour comprendre comment cela fonctionne.

Imaginons la ListView en mode Report (ou List, je ne sais plus), comme le mode où l'on affiche le détail des fichiers dans l'explorateur de fichiers.
Un Item correspond à une ligne; en fait, à l'élément se trouvant dans la première colonne maîtresse de la ListView.
Les SubItems ne sont que des textes qui s'ajoutent aux colonnes 2, 3, 4, etc - autant que de ColumnHeader, moins 1
Avant donc de vouloir écrire les SubItems, il faut définir les colonnes (ColumnHearder), puis s'adresser au SubItem d'index 1 pour le premier qui est en colonne 2, etc

Où se trouvent les données que tu veux insérer en tant que Item et SubItem ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Salut

for each item1 to me.listview.items.count -1
for each item2 to me.listview.items.count -1
lvitem = me.listview.item.add("Bonjour le probleme :(")
lvitem.subitems.add(item1)
lvitem.subitems.add(item2)
next
next

syntax error
veux tu expliquer ton for ?
ex for
 For Each item1 As Object In ListView1.Items

ou
 For iter = 0 To ListView1.Items.Count - 1

ton for ne correpond à aucun des deux
Messages postés
49
Date d'inscription
lundi 7 novembre 2011
Statut
Membre
Dernière intervention
22 juillet 2012

bonsoir et merci de me repondre. j'étais assez pressé quand j'ai posté. en fait je voudrais parcourir comme ceci:
dim lvitem as new listviewitem
for each item as match in matches1.count -1
for each item2 as match in matches2.count -1
lvitem = me.listview1.item.add("coucou")
lvitem.subitem.add(item)
lvitem.subitem.add(item2)
next
next

ca devrait etre plus clair :)
donc le probleme c'est que j'aimerai ajouter le nombre d'item "item" dans ma listview a la colonne 2 (pour l'exemple)et ensuite l'item "item2" a la colonne3 (pour l'exemple) .En gros je veux une seule itération et non pas cela en fonction de ma deuxieme boucle suis-je assez clair?


Merci de votre temps.
Messages postés
49
Date d'inscription
lundi 7 novembre 2011
Statut
Membre
Dernière intervention
22 juillet 2012

en fait je veux recupérer la valeur de regex que j'instancie puis je parcours ....matches1 et matches 2, puis les ajouter a la listview qui comporte 3 colonne "id, item, item1"....

encore merci de vos réponses...
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
1 déja retire réponse acceptée
2 si tu colle un code utilise la coloration
syntaxique 3 ieme icone de droite

3 ton for est incorrecte
mais explique d'abord en français si possible
ce que tu veux faire
chaque détail est important
Messages postés
49
Date d'inscription
lundi 7 novembre 2011
Statut
Membre
Dernière intervention
22 juillet 2012

ok je vais me débrouillé je perdrai moins de temps....
Messages postés
49
Date d'inscription
lundi 7 novembre 2011
Statut
Membre
Dernière intervention
22 juillet 2012

a chaque probleme une solution :: :::: compter que sur soi-même
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
On ne t'as pas dit qu'on voulait pas t'aider
mais si je n'ai pas compris ce que tu veux faire
je ne vais pas te répondre n'importe quoi
Messages postés
49
Date d'inscription
lundi 7 novembre 2011
Statut
Membre
Dernière intervention
22 juillet 2012

ok je sais c'est que j'avais l'impression d'etre clair alors désolé je n'ai pas le code sous la main et je fais ca a la volée. demain je posterai mon bout de code et vous comprendrez mieux ....bonne soirée à vous les geekous !!!!
Messages postés
49
Date d'inscription
lundi 7 novembre 2011
Statut
Membre
Dernière intervention
22 juillet 2012

Donc comme promis je vais essayer d'être plus clair en vous fournissant mon bout de code(je ne fournirais pas les regex autantiques de mon programme, elles seront remplacées ici par "Ma regex 1", "Ma regex 2"):

try
1-instance webrequest
Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(TxtExplorer.Text)

2-instance webreponse
Dim reponse As System.Net.HttpWebResponse = request.GetResponse

3-instance streamReader
Dim sr_io As System.IO.StreamReader = New System.IO.StreamReader(reponse.GetResponseStream())

4-instance txt streamReader
Dim rssource As String = sr_io .ReadToEnd

5-instances regex
Dim reg1 As New System.Text.RegularExpressions.Regex("Ma regex 1")
Dim reg2 As New System.Text.RegularExpressions.Regex("Ma regex 2")

6-instance matches
Dim matches1 As MatchCollection = reg1 .Matches(rssource)
Dim matches2 As MatchCollection = reg2 .Matches(rssource)

7-boucle matches 'probleme


For Each item As Match In matches1
for Each item2 as Match In matches2
Dim Lvt As ListViewItem
Lvt= lvtAdd.Items.Add(lvtAdd.Items.Count)
Lvt.SubItems.Add(item.Value.Split("""").GetValue(0))
Lvt.SubItems.Add(item2.Value.Split("""").GetValue(0))
Lvt.SubItems.Add(reponsenewmail.ResponseUri.AbsoluteUri.ToString)
Next
Next

Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical)
End Try

Le Hick ici est que j'utilise une ListViewItem.
Donc mon problème est que la boucle "For Each item As Match In matches1" execute son nombre d'itérations en fonction
de la boucle "for Each item2 as Match In matches2" .Je voudrais simplement récupérer les items de la premiere boucle, les ajouter à la deuxieme colonnes de ma listview, puis récupérer les items de la seconde boucle et les ajouter à la troisieme colonne de ma listview sachant que je ne peux pas sortir "Lvt" de mes boucles.

EN GROS:
J'ai une listview nommée lvAdd de 4 colonnes :

j'ajoute a la premiere colonne : (lvtAdd.Items.Count)
je voudrais ajouter "(item.Value.Split("""").GetValue(0))" à la deuxieme colonne
puis ajouter "Lvt(item2.Value.Split("""").GetValue(0))" à la troisieme colonne.
enfin ajouter "Lvt.SubItems.Add(reponsenewmail.ResponseUri.AbsoluteUri.ToString)"

J'ai déja pensé créer une variable pour chaque items puis les récupérer en dehors de la boucle sans succès....
J'ai essayé de quitter prématurément la boucle ......sans succès
J'ai aussi pensé à mettre le résultat des boucles dans un array....(mais très peu de connaissance pour la classe ArrayList (dois-je m'orienter là dessus?????))....
Je ne sais pas, mais ma dernière idèe serai que l'on puisse récupérer le noms des colonnes de la listview pour que je puisse remplir par exemple la colonne 3,alors que les autres colonnes sont déjà remplies, mais ATTENTION !, a partir de l'index 0....(car j'ai déjà fait un test mais "item2" s'ajoute a la suite des premiers élèments ajoutés)donc si quelqu'un a une idée....merci


Je ne demande pas le bout de code de la solution mais seulement que l'on m'oriente sur la technique la plus courante, optimale,
pour arriver à mes fins.Et désolé si je passe à côté de quelque chose de simple , mais connaissances an VB sont celles des tutos internets et je connais aussi d'autres languages donc autant dire que c'est dur de tout retenir :).


Voilà je ne pourrais pas être plus clair...Merci de votre aide et bonne soirée!