[R] Lecture et utilisation d'une liste

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
mafooley
Niveau 2
Niveau 2
Messages : 27
Enregistré le : dim. 24 août 2008 22:04
Status : Hors ligne

[R] Lecture et utilisation d'une liste

#1

Message par mafooley »

Bonjour à tous,

J'espère que la présentation du message sera correcte...
ça fait un moment que je ne m'étais pas replongé dans cet "arrachage" de cheveux qu'est la programmation.

Voilà malgé mes recherche sur le forum, je n'ai pas trouvé, ou du moins pas clairement, de solution qui m'ont permit d'avancer.
En fait, j'essaye simplement de récupérer des informations contenues dans un fichier ini via IniReadSection et de les faire apparaitre dans une liste sur une GUI.
Cette première étape fonctionne. Ma liste se remplie correctement avec les données du fichier ini.
Mon soucis est que je n'arrive pas à associer les deux colonnes comprises dans la section de mon fichier ini; dans mons cas, la couleur avec la pierre:
► Afficher le textele fichier ini
Mon code est le suivant:
► Afficher le textele code
Voilà, j'aimerai que ma msgbox m'affiche les informations du fichier ini (bien-sûr, ces informations seront utilisés autrement, mais là, c'est juste pour l'exemple)

L'idéale serait de pouvoir même selectionner une ou plusieurs pierre dans la liste et que la msgbox affiche une ligne par réponse...

Merci d'avance pour votre aide.

Maf
Modifié en dernier par mafooley le lun. 16 août 2010 10:57, modifié 1 fois.
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Lecture et utilisation d'une liste

#2

Message par jbnh »

Bonjour,

Pour votre premier problème, afficher la couleur, il est normal que votre script ne marche pas. En effet, jamais votre couleur n'est rentrée dans la GUI, uniquement les pierres donc un Guictrlread ne pourra jamais retourner la couleur. Par contre, une fois que vous avez la pierre vous devez retourner dans votre fichier ini et chopper la couleur associée à la pierre avec IniRead.

Pour la multisélection, je ne sais trop.
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
mafooley
Niveau 2
Niveau 2
Messages : 27
Enregistré le : dim. 24 août 2008 22:04
Status : Hors ligne

Re: [..] Lecture et utilisation d'une liste

#3

Message par mafooley »

Et oui, suis-je bete...

j'ai remplacé :

Code : Tout sélectionner

$couleur = GUICtrlRead($info[$pierre][1])
 
par:

Code : Tout sélectionner

$couleur = IniRead ("Test.ini", "COULEUR", $pierre, " ")
 
et ça fonctionne. Il me reste tout de même le sujet de la selection multiple et là, je sèche...
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] Lecture et utilisation d'une liste

#4

Message par Jerome »

Coucou,

Pour la multi sélection, il vous suffit de remplacer ce bout de code :

Code : Tout sélectionner

$LST01 = GUICtrlCreateList("", 40, 16, 161, 253)
par celui - ci

Code : Tout sélectionner

$LST01 = GUICtrlCreateList("", 40, 16, 161, 253, $LBS_EXTENDEDSEL)
Après, à vous d'adapter la msgbox en conséquence pour qu'elle affiche ce qu'il vous faut.

Edit : Je m'embêtait un peu, voici quelque chose qui je pense est ce que vous voulez

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Process.au3>

;----------VARIABLES------------------------------------------------

Global $info, $sShowItems, $aShowItems
Global $LST01

;-------------------------------------------------------------------

Opt("GUIOnEventMode", 1)

If Not FileExists("sylnet.ini") Then
    MsgBox(48, "INI ?", "La bibliothèque de contact n'a pas été trouvée.")
    Exit
EndIf

$info = IniReadSection("Test.ini", "COULEUR")
If @error Then
    MsgBox(16, "paramètre incorrect", "Le fichier INI ne contient pas de section [COULEUR].")
    Exit
EndIf


;----------GUI------------------------------------------------------

$Test = GUICreate("Test", 245, 361, 198, 136)
    GUISetOnEvent($GUI_EVENT_CLOSE, "annuler") ;Fermeture avec la p'tite croix
$LST01 = GUICtrlCreateList("", 40, 16, 161, 253, $LBS_EXTENDEDSEL)
    For $i = 1 To $info[0][0]
       GUICtrlSetData($LST01, $info[$i][0])
    Next
$Button1 = GUICtrlCreateButton("OK", 40, 304, 161, 33, $WS_GROUP)
    GUICtrlSetOnEvent($Button1, "afficher")
GUISetState(@SW_SHOW)


;-------------------------------------------------------------------

While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend

;----------FONCTIONS------------------------------------------------

Func Annuler()
    Exit
EndFunc

;-------------------------------------------------------------------

Func afficher()
    $sShowItems = ""
    $aShowItems = _GUICtrlListBox_GetSelItemsText($LST01)
    For $i = 1 To $aShowItems[0]
        $couleur = IniRead ("Test.ini", "COULEUR", $aShowItems[$i], " ")
        $sShowItems &= "La couleur de " & $aShowItems[$i] & " est " & $couleur & "." & @LF
    Next
    MsgBox(0,"Résultat", $sShowItems)
EndFunc

;-------------------------------------------------------------------


Jérôme.
Avatar du membre
mafooley
Niveau 2
Niveau 2
Messages : 27
Enregistré le : dim. 24 août 2008 22:04
Status : Hors ligne

Re: [..] Lecture et utilisation d'une liste

#5

Message par mafooley »

Impéccable, merci beaucoup Jérôme.

Maf
Répondre