Page 1 sur 1
[..] Array, GuiCtrlCreateList, Ini,
Posté : dim. 01 janv. 2012 19:51
par shadsnob
je voudrais que l’on m’aide, je n’arrive pas à lire mon fichier ini, récupérer chaque ligne, découper la ligne, séparer dans la ligne chaque mot séparé par point-virgule pour n’avoir que le nom que je mets dans la GuiCtrlCreateList. Les autres morceaux découpés seront utilisés plus tard.
En gros, je veux une liste qui affiche seulement le premier champ, et quand je sélectionne un élément dans la liste, ça associe le bon fichier à exécuter (les autres champs de la ligne). C’est une méthode pour lancer des applications dynamiquement à partir d’un fichier ini.
Si vous avez un exemple simple (lecture ini + boucle + StringSplit + ajout dans la liste + récupération de l’index sélectionné), je suis preneur. J’ai essayé de structurer ça avec une
IA gratuite Nation AI mais je bloque encore sur la meilleure façon de lier la sélection au bon chemin.
Merci de m’aider.
Re: [..]Array, guictrlcreatelist, Ini,
Posté : dim. 01 janv. 2012 20:54
par Yogui
je n'aurai pas créé le fichier ini de cette façon mais un petit début ... reprenant votre "méthode" ...
Regardez les exemples d'IniRead sur le forum
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>
#include <array.au3>
$FileOpen = Fileopendialog("Selectionner le fichier de configuration",@ScriptDir,"(*.ini)") ;ouvre le fichier ini
Global $nomlog
$Main3 = GuiCreate("Sample GUI 3", 300, 400)
Global $list = GUICtrlCreateList("",10,10,100,100)
GUISetState(@sw_show,$Main3)
lecture($list)
Func Lecture($list)
$b = ""
$var = IniReadSection($FileOpen, "INSTALLATIONS LIST")
For $i=1 to $var[0][0]
$b = $var[$i][1] ; on recupere chaque ligne
$b = StringSplit($var[$i][1], ";") ; on decoupe chaque partie
$nomlog = $nomlog&"|"& $b[1]
Next
GUICtrlSetData($list,$nomlog) ;on prend la premiere partie le nom du logiciel et on le met dans la list
;~ MsgBox(0,"","(Nom Applic) "&$b[1]&" (chemin:) "&$b[2]&" (mode login:) "&$b[3]&" (redemarrage:) "&$b[4]&" ")
EndFunc
While 1
$nMsg = GUIGetMsg()
Select
Case $nMsg = $GUI_EVENT_CLOSE
Exit
EndSelect
WEnd
Re: [..] Array, GuiCtrlCreateList, Ini,
Posté : lun. 02 janv. 2012 18:24
par Yogui
C'est le début d'année alors ...
► Afficher le texteCode modifié ...
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListBox.au3>
$FileOpen = FileOpenDialog("Selectionner le fichier de configuration", @ScriptDir, "(*.ini)") ;ouvre le fichier ini
Global $nomlog
$Main3 = GUICreate("Sample GUI 3", 300, 400)
Global $list = GUICtrlCreateList("", 10, 10, 100, 100)
GUISetState(@SW_SHOW, $Main3)
lecture($list)
Func Lecture($list)
Local $section = IniReadSectionNames($FileOpen)
If @error Then
MsgBox(4096, "", "Error occurred, probably no INI file.")
Else
For $i = 1 To $section[0]
$nomlog = $nomlog & "|" & $section[$i]
Next
GUICtrlSetData($list, $nomlog)
EndIf
EndFunc ;==>Lecture
While 1
$nMsg = GUIGetMsg()
Select
Case $nMsg = $GUI_EVENT_CLOSE
Exit
case $nMsg = $list
$Selected = _GUICtrlListBox_GetText($List, _GUICtrlListBox_GetCurSel($List))
$chemin = IniRead($FileOpen,$Selected,"Chemin",'non rensiegné')
$type = IniRead($FileOpen,$Selected,"Type",'non rensiegné')
$boot = IniRead($FileOpen,$Selected,"Chemin",'boot rensiegné')
MsgBox(0,$Selected,'chemin = '& $chemin &' Type = '& $type&' boot = '&$boot)
EndSelect
WEnd
► Afficher le texteNouveau fichier ini
Code : Tout sélectionner
[Firefox]
Chemin = c:\firefox.exe
Type = SERVICE
boot = NOBOOT
[explorer]
Chemin = d:\explorer.exe
Type = AUTOLOGIN
boot = BOOT
[msn]
Chemin = f:\msn.exe
Type = SERVICE
boot = BOOT
Ce n'est plus vraiment votre code mais j'en ai gardé beaucoup... Il n'est pas documenter pour le comprendre vous avez l'aide !