[R] Récuperation des valeurs d'une listview

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
tomtomhonda
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mer. 12 juin 2013 13:05
Status : Hors ligne

[R] Récuperation des valeurs d'une listview

#1

Message par tomtomhonda »

Bonjour;

Je cherche à récupérer les valeurs d'une multi selection sur une Listview:

Exemple:

ma listview est générer a partir d'in fichier texte, j'applique a ma listview les parametres suivants:

Code : Tout sélectionner

$ListView_Domain = GUICtrlCreateListView("", 2, 2, 394, 268,$LVS_REPORT, $LVS_SHOWSELALWAYS)
 
Ma listview est correctement généré avec la possibilité de selectionner plusieurs éléments mais mon probléme
suivient quand je désir récupérer l'ensemble des valeurs selectionées.

J'utilise la fonction guictrlread:

Code : Tout sélectionner

$Computer_name_Domain = StringReplace(GUICtrlRead(GUICtrlRead($ListView_Domain)), "|", "")
 
mais je n'arrive qu'a récupérer la premiere valeur.

Comment puis je récupérer toute les valeurs selectionné afin d'executer une tache sur l'ensemble des valeurs récupérer
comme avec un filereadline par exemple.

Merci d'avance
Modifié en dernier par tomtomhonda le lun. 17 juin 2013 10:44, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récuperation des valeurs d'une listview

#2

Message par mikell »

Tu peux faire une boucle sur les items, vérifier s'ils sont sélectionnés et si oui récupérer le texte

Code : Tout sélectionner

$txt = ""
$count = ControlListView($gui, "", $listview, "GetItemCount")
For $i =  0 to $count-1
   If ControlListView($gui, "", $listview, "IsSelected", $i) Then 
       $txt &= ControlListView($gui, "", $listview, "GetText", $i) & @crlf
   EndIf
Next
Msgbox(0,"", $txt)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
tomtomhonda
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mer. 12 juin 2013 13:05
Status : Hors ligne

Re: [..] Récuperation des valeurs d'une listview

#3

Message par tomtomhonda »

Merci pour ton code

Mais il faudrais que sa m'affiche 1 msgbox par item et nom 1 msgbox
contenant tout les items selectionnés.

ainsi je pourrais executer l'action a chaque fois

exemple allumer les pcs selectionnée dans la listview

j'ai modifier ton code sa marche pour moi mais est que c'est propre :-)

Code : Tout sélectionner

            $txt = ""
            $count = ControlListView($gui, "", $ListView_Domain, "GetItemCount")
   For $i =  0 to $count-1
   If ControlListView($gui, "", $ListView_Domain, "IsSelected", $i) Then

   $txt &= ControlListView($gui, "", $ListView_Domain, "GetText", $i) & @crlf
   Msgbox(0,"", $txt)
   $txt = ""
   EndIf
next
 
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récuperation des valeurs d'une listview

#4

Message par mikell »

Pas tout à fait :mrgreen:
Si tu veux traiter les résultats un par un successivement tu n'as pas besoin de concaténer le texte

Code : Tout sélectionner

Local $txt
$count = ControlListView($gui, "", $ListView_Domain, "GetItemCount")
For $i =  0 to $count-1
   If ControlListView($gui, "", $ListView_Domain, "IsSelected", $i) Then
         $txt = ControlListView($gui, "", $ListView_Domain, "GetText", $i) & @crlf
         Msgbox(0,"", $txt)
   EndIf
Next
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
tomtomhonda
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mer. 12 juin 2013 13:05
Status : Hors ligne

Re: [..] Récuperation des valeurs d'une listview

#5

Message par tomtomhonda »

Bonjour en fait je veux pouvoir exécuter une autre boucle type while sur un fichier texte
si la chaine existe je fait l'action sinon je passe au suivant.
Le problème c'est qu'avec se script il traite la première boucle intégralement du coup sa ne pas.

Code : Tout sélectionner

Local $txt
$count = ControlListView($gui, "", $ListView_Domain, "GetItemCount")
For $i =  0 to $count-1
   If ControlListView($gui, "", $ListView_Domain, "IsSelected", $i) Then
         $txt = ControlListView($gui, "", $ListView_Domain, "GetText", $i) & @crlf
         Msgbox(0,"", $txt)
   EndIf
Next
 

ou puis je placer ma boucle while ?

genre

Code : Tout sélectionner

$file = fileopen(monfichier)

While 1
    Local $line = FileReadLine($file)
    (je recherche la chaine de caractére si elle existe je fait l'action)
    If @error = -1 Then ExitLoop
    WEnd
 
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récuperation des valeurs d'une listview

#6

Message par mikell »

Là on est typiquement dans le cas où tu as intérêt à te créer une fonction perso dans laquelle tu peux mettre le 2ème traitement, exemple

Code : Tout sélectionner

Local $txt
$count = ControlListView($gui, "", $ListView_Domain, "GetItemCount")
For $i =  0 to $count-1
   If ControlListView($gui, "", $ListView_Domain, "IsSelected", $i) Then     ; si l'item est sélectionné
         $txt = ControlListView($gui, "", $ListView_Domain, "GetText", $i)     ; lit le texte de l'item
         _MaFonction($txt)      ; lance la fonction perso avec la valeur de $txt comme paramètre
   EndIf
Next

Func _MaFonction($str)
   Msgbox(0,"", $str)
EndFunc
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
tomtomhonda
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mer. 12 juin 2013 13:05
Status : Hors ligne

Re: [..] Récuperation des valeurs d'une listview

#7

Message par tomtomhonda »

Merci encore a toi je vois âprement le bout du tunnel je suis pas programmeur et je galère beaucoup.
J'ai quand même déjà prog en autoit mais je saisie pas tout car beaucoup de fonction.

Je te met mon bout de code test
âprement sa fonctionne j'attend de tester sur ma while :-)
► Afficher le texte
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Récuperation des valeurs d'une listview

#8

Message par mikell »

OK, n'oublie pas de mettre la balise [R] dans le titre de ton 1er post quand le pb aura été âprement résolu :wink:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Répondre