[R] récupérer valeur dans "$Combo1"

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
jeanmimigab
Niveau 5
Niveau 5
Messages : 123
Enregistré le : sam. 08 oct. 2011 14:01
Status : Hors ligne

[R] récupérer valeur dans "$Combo1"

#1

Message par jeanmimigab »

Bonjour à tous(tes)

J'essaie de créer un petit utilitaire afin de gérer une flotte de véhicule.

Le but est de travailler avec un fichier.ini (car.ini) qui contient les immatriculations des véhicules à gérer (une ligne pour chaque imat...)

J'arrive à générer et modifier le fichier car.ini sans problème avec le script "edit_car_ini.au3" ci-dessous

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#Region ### START Koda GUI section ### Form=C:\Users\Jeanmimi\Desktop\test wroouuummmm\test edit car_ini.kxf
$Form1 = GUICreate("test edit car.ini", 411, 369, 192, 124)
$Group1 = GUICtrlCreateGroup("Group1", 112, 64, 217, 169)
$Edit1 = GUICtrlCreateEdit("", 128, 96, 169, 113)
GUICtrlSetData(-1, "")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Valider", 144, 272, 139, 49)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE OR $msg = $Button1 Then Exitloop
Sleep(10)
Wend

_Creatcarini()
Func _Creatcarini()
$ecri = guictrlread($Edit1)
$file = FileOpen(@scriptdir & "/car.ini", 1)
$msg = GUIGetMsg()
Filewrite($file,"" & $ecri & @CRLF )
Exit
EndFunc
J'arrive aussi à le lire et afficher son contenu dans un combo avec ce script "test création dossier"

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=C:\Users\Jeanmimi\Desktop\test wroouuummmm\test ouv dossier.kxf
Global $file = FileOpen("car.ini"), $ligne    ;variable qui ouvre car.ini pour créer  $ligne qui est le contenu de car.ini
Global $Form1 = GUICreate("test création dossier", 291, 294, 256, 181)
Global $Button1 = GUICtrlCreateButton("Button1", 72, 136, 147, 113)
Global $Group1 = GUICtrlCreateGroup("choix", 56, 16, 185, 105)
Global $Combo1 = GUICtrlCreateCombo("", 73, 56, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData($Combo1, $ligne & "|")
GUICtrlCreateGroup("", -99, -99, 1, 1) ; encadrement de Combo1


GUISetState(@SW_SHOW)

#EndRegion ### END Koda GUI section ###

GuictrlsetLimit($Combo1,100) ; axi 100 ligne dans la GUICtrlCreateCombo,
GuiSetState() ; on affiche la gui


    While 1
        $ligne = FileReadLine($file)
        If @error = -1 Then ExitLoop
        GUICtrlSetData($Combo1, $ligne & "|")
    Wend

    While 1
        $msg = GUIGetMsg()
        If $msg = $GUI_EVENT_CLOSE OR $msg = $Button1 Then Exitloop
        Sleep(10)
    Wend
Guidelete()

    FileClose($file) ; fermeture du fichier car.ini

    GuictrlsetLimit($Combo1,100) ; maxi 100 lignes affichées dans la GUICtrlCreateList,
    GuiSetState() ; affichage gui
    Guidelete()



_Creation() ;fonction pour créer dossier avec le nom sélectionné dans $Combo1

Func _Creation()

$Name = GuiCtrlRead("$Combo1")
        DirCreate('liste car\' & $Name & '\test sous dossier' )
Exit
EndFunc
Mais c'est là que ça se complique...quand je sélectionne une ligne dans "$Combo1" pour créer un dossier du même nom que la valeur sélectionnée, je me retrouve avec un dossier portant le nom "0" du fait que probablement aucune valeur n'est extraite de mon "$Combo1". :?

Je n'arrive pas à voir où cela cloche et si l'utilisation du Combo est adaptée à ce que je voudrais faire

Peur-être aussi que le choix du fichier.ini me complique la vie, mais le but de ce fichier est de faire apparaitre tous les véhicule dans un GUI afin d'y accéder plus tard
avec Run('explorer ' & @ScriptDir & patati patata)

Merci d'avance pour vos conseils avisés :D

@++ JM
Modifié en dernier par jeanmimigab le lun. 14 juil. 2014 16:11, modifié 1 fois.
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [..] récupérer valeur dans "$Combo1"

#2

Message par cutprod »

Bonjour,
enlève les ""

$Name = GuiCtrlRead("$Combo1") => $Name = GuiCtrlRead($Combo1)

Et la ça marche...
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
jeanmimigab
Niveau 5
Niveau 5
Messages : 123
Enregistré le : sam. 08 oct. 2011 14:01
Status : Hors ligne

Re: [..] récupérer valeur dans "$Combo1"

#3

Message par jeanmimigab »

Bonjour cutprod :D

et merci pour ton aide :wink:

J'avais mis ces "" pour tester car sans ceux-ci cela ne fonctionnait pas, je vient de tester à nouveau et cela me créer toujours un dossier nommé "0" au lieu de la sélection qui est dans $Combo1.

celui-ci corrigé ne fonctionne pas :( . Je me demande si j'utilise le bon Ctrl pour le $Combo1 ?

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=C:\Users\Jeanmimi\Desktop\test wroouuummmm\test ouv dossier.kxf
Global $file = FileOpen("car.ini"), $ligne    ;variable qui ouvre car.ini pour créer  $ligne qui est le contenu de car.ini
Global $Form1 = GUICreate("test création dossier", 291, 294, 256, 181)
Global $Button1 = GUICtrlCreateButton("Button1", 72, 136, 147, 113)
Global $Group1 = GUICtrlCreateGroup("choix", 56, 16, 185, 105)
Global $Combo1 = GUICtrlCreateCombo("", 73, 56, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData($Combo1, $ligne & "|")
GUICtrlCreateGroup("", -99, -99, 1, 1) ; encadrement de Combo1


GUISetState(@SW_SHOW)

#EndRegion ### END Koda GUI section ###

GuictrlsetLimit($Combo1,100) ; axi 100 ligne dans la GUICtrlCreateCombo,
GuiSetState() ; on affiche la gui


    While 1
        $ligne = FileReadLine($file)
        If @error = -1 Then ExitLoop
        GUICtrlSetData($Combo1, $ligne & "|")
    Wend

    While 1
        $msg = GUIGetMsg()
        If $msg = $GUI_EVENT_CLOSE OR $msg = $Button1 Then Exitloop
        Sleep(10)
    Wend
Guidelete()

    FileClose($file) ; fermeture du fichier car.ini

    GuictrlsetLimit($Combo1,100) ; maxi 100 lignes affichées dans la GUICtrlCreateList,
    GuiSetState() ; affichage gui
    Guidelete()



_Creation() ;fonction pour créer dossier avec le nom sélectionné dans $Combo1

Func _Creation()

$Name = GuiCtrlRead($Combo1)
        DirCreate('liste car\' & $Name & '\test sous dossier' )
Exit
EndFunc


 
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [..] récupérer valeur dans "$Combo1"

#4

Message par cutprod »

Enleve le "Guidelete()" sous le wend et remonte l'appel a ta fonction "_Creation()" sous "FileClose($file)" et ça fonctionne!!
pense a debuger avec des MsgBox cela t'aidera bien ...
► Afficher le texte
si tu efface le $combo avant de lire sa valeur :?
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
jeanmimigab
Niveau 5
Niveau 5
Messages : 123
Enregistré le : sam. 08 oct. 2011 14:01
Status : Hors ligne

Re: [..] récupérer valeur dans "$Combo1"

#5

Message par jeanmimigab »

ha vi cela fonctionne maintenant :D

J'ai tellement modifié ce script que j'en ai fait fait un truc brouillon...avec des oublis par ci par là sauf pour l'emplacement d'appel de la fonction que j'avais zappé :roll:

Encore merci beaucoup pour ton aide et à bientôt pour mes nouvelles boulettes :lol:
pense a debuger avec des MsgBox
Excellente idée, je vais faire cela maintenant :!:

@++ JM
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [..] récupérer valeur dans "$Combo1"

#6

Message par cutprod »

OK, content de t'avoir aider passe le sujet en [R]
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
jeanmimigab
Niveau 5
Niveau 5
Messages : 123
Enregistré le : sam. 08 oct. 2011 14:01
Status : Hors ligne

Re: [..] récupérer valeur dans "$Combo1"

#7

Message par jeanmimigab »

Au fait j'ai mofifier en ajoutant des conditions (IF) car cela pouvait bugger pour l'édition du fichier.ini et la création de dossier si rien n'était saisis par l'utilisateur

pour les dossiers

Code : Tout sélectionner

If $Name <> "" Then
    MsgBox(0,"",$Name)
    DirCreate('liste car\' & $Name & '\test sous dossier' )
    EndIf
Exit
EndFunc
et pour la création du fichier.ini

Code : Tout sélectionner

If $ecri <> "" Then
Filewrite($file,"" & $ecri & @CRLF )
EndIf
J'édite le titre du topic, merci :wink:
Répondre