[R] Gui 4 Boutons pour écrire Yes où No dans fichier INI

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

[R] Gui 4 Boutons pour écrire Yes où No dans fichier INI

#1

Message par pierrotm777 »

Bonjour à tous,

J'ai besoin de modifier un fichier INI comportant 4 variables :

Je crée dans mon fichier ainsi :

Code : Tout sélectionner

      IniWrite("Speedzone.ini","OPTIONS","TONE","YES")
      IniWrite("Speedzone.ini","OPTIONS","MESSAGEBOXES","YES")
      IniWrite("Speedzone.ini","OPTIONS","VOICES","YES")
      IniWrite("Speedzone.ini","OPTIONS","SCROLLINGMESSAGES","YES")
J'obtiens donc un fichier Speedzone.ini :

Code : Tout sélectionner

[OPTIONS]
TONE=NO
MESSAGEBOXES=NO
VOICES=YES
SCROLLINGMESSAGES=NO
J'ai donc crée mon GUI ainsi:
► Afficher le texte
Je souhaiterais que lorsque j'appuie sur un des quatre boutons, si la valeur lue est YES , on écrive NO et inversement .

Dans la zone "Pending changes" , je fait apparaitre la valeur des variables :
Je voudrais voir s'afficher la modification effectuée par l'appuie sur les boutons:

J'ai donc écrit ce code étant sencé rafraichir ma zone, mais rien ne se passe:
► Afficher le texte
Voici ma boucle de commande des boutons:
► Afficher le texte
Curieusement, l'état NO est bien changé en YES et inversement , mais je ne peux pas appuyer sur le même bouton deux fois
de suite pour changer l'état deux fois de suite !

Merci de votre aide par avance
Modifié en dernier par pierrotm777 le sam. 25 avr. 2009 19:35, modifié 1 fois.
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] Gui 4 Boutons pour écrire Yes où No dans fichier INI

#2

Message par GaRydelaMer »

Bonjour

c'est pas curieux !!! juste une légère erreur de conception !!!

Tu changes la valeur dans le fichier INI, mais ton If tu le fais sur la valeur de la variable que tu mets pas à jour en modifiant ton fichier INI.

Code : Tout sélectionner

If $setupMESSAGES = "YES" Then
IniWrite("Speedzone.ini", "OPTIONS", "MESSAGEBOXES", "NO")
ElseIf $setupMESSAGES = "NO" Then
IniWrite("Speedzone.ini", "OPTIONS", "MESSAGEBOXES", "YES")
; Endif
Endif
Remplace le par :

Code : Tout sélectionner

If $setupMESSAGES = "YES" Then
IniWrite("Speedzone.ini", "OPTIONS", "MESSAGEBOXES", "NO")
$setupMESSAGES  = "NO"
ElseIf $setupMESSAGES = "NO" Then
IniWrite("Speedzone.ini", "OPTIONS", "MESSAGEBOXES", "YES")
&setupMESSAGES = "YES"
; Endif
Endif
Idem pour les autres variables, sinon fais ton If sur la valeurs dans le fichier INI avec IniRead.
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Gui 4 Boutons pour écrire Yes où No dans fichier INI

#3

Message par pierrotm777 »

Merci GaRydelaMer,

Je n'était pas loin .

Ca marche super Bien
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Gui 4 Boutons pour écrire Yes où No dans fichier INI

#4

Message par pierrotm777 »

Je cherche comment lister les fichiers *.LNG afin de les visualiser automatiquement
dand mon combo.

Code : Tout sélectionner

$Group = GUICtrlCreateGroup("AVAILABLE LANGUAGES", 8, 160, 175, 80)
$setupLANGUAGE = IniRead("Speedzone.ini","OPTIONS","LANGUAGE","")
$labelLANGUAGE = GUICtrlCreateLabel('LANGUAGE = ' & $setupLANGUAGE, 200, 200, 300, 20)
$Cb_Languages = GUICtrlCreateCombo("", 50, 190, 97, 25)
GUICtrlSetData(-1, "ENGLISH|FRENCH|GERMAN|SPANISH|EBONICS", $setupLANGUAGE)
Il faudrait donc remplacer la ligne "ENGLISH|FRENCH|GERMAN|SPANISH|EBONICS" par ???
Ainsi tout fichier .lng présent seraient listés mais sans leur extension .


Avec un autre bouton, j'ouvre un input, je le lis, puis je veux l'écrire dans mon fichier INI .

Voici le format de mon INI:

Code : Tout sélectionner

[SPEEDLIMIT]
SPEEDLIMIT=80
SPEEDLIMITOLD=100
 
J'ai modifié mon GUI en fonction:

Code : Tout sélectionner

$setupSPEEDLIMIT = IniRead("Speedzone.ini","SPEEDLIMIT","SPEEDLIMIT","")
$labelSPEEDLIMIT = GUICtrlCreateLabel('SPEED LIMIT = ' & $setupSPEEDLIMIT, 200, 160, 300, 20)
devient juste :

Code : Tout sélectionner

$setupSPEEDLIMITOLD = IniRead("Speedzone.ini","SPEEDLIMIT","SPEEDLIMITOLD","")
$labelSPEEDLIMITOLD = GUICtrlCreateLabel('SPEED LIMIT = ' & $setupSPEEDLIMITOLD, 200, 160, 300, 20)
Voici ma boucle d'écriture des valeur dans le fichier INI

Code : Tout sélectionner

        Case $SpeedLimit
            inputbox("Question","Enter The New Default Speed Limit",$setupSPEEDLIMITOLD,"",250,125)
            $setupSPEEDLIMIT = GUICtrlRead($setupSPEEDLIMITOLD) ;Lire la variable de l'input
            IniWrite("Speedzone.ini", "SPEEDLIMIT", "SPEEDLIMIT", $setupSPEEDLIMIT)
            IniWrite("Speedzone.ini", "SPEEDLIMIT", "SPEEDLIMITOLD", $setupSPEEDLIMITOLD)
            GetRide()
            MsgBox(64, "The New Speed Limit is : !!!", "New Speed: " & $setupSPEEDLIMIT &@CRLF& "Old Speed : " & $setupSPEEDLIMITOLD)
Et voilà , je me sent un peut encore blaireau , mon code lit bien la variable $setupSPEEDLIMITOLD mais n'écrit pas du tout la bonne variable $setupSPEEDLIMIT dans mon fichier INI .

Une idée ... ???
nounours
Niveau 2
Niveau 2
Messages : 16
Enregistré le : ven. 01 août 2008 12:28
Status : Hors ligne

Re: [..] Gui 4 Boutons pour écrire Yes où No dans fichier INI

#5

Message par nounours »

bonjour à toi ,

Code : Tout sélectionner

Case $SpeedLimit
            inputbox("Question","Enter The New Default Speed Limit",$setupSPEEDLIMITOLD,"",250,125)
            $setupSPEEDLIMIT = GUICtrlRead($setupSPEEDLIMITOLD) ;Lire la variable de l'input
            IniWrite("Speedzone.ini", "SPEEDLIMIT", "SPEEDLIMIT", $setupSPEEDLIMIT)
            IniWrite("Speedzone.ini", "SPEEDLIMIT", "SPEEDLIMITOLD", $setupSPEEDLIMITOLD)
            GetRide()
            MsgBox(64, "The New Speed Limit is : !!!", "New Speed: " & $setupSPEEDLIMIT &@CRLF& "Old Speed : " &  $setupSPEEDLIMITOLD)
dans ton code tu ne lis pas la valeur de l'input , mais la valeur de ton fichier ini . tu devrais faire comme cela :

Code : Tout sélectionner

Case $SpeedLimit
            $setupSPEEDLIMIT =inputbox("Question","Enter The New Default Speed Limit",$setupSPEEDLIMITOLD,"",250,125) ; $setupSPEEDLIMIT correspond à la valeur de ton input 
            IniWrite("Speedzone.ini", "SPEEDLIMIT", "SPEEDLIMIT", $setupSPEEDLIMIT)
            IniWrite("Speedzone.ini", "SPEEDLIMIT", "SPEEDLIMITOLD", $setupSPEEDLIMITOLD)
            GetRide()
            MsgBox(64, "The New Speed Limit is : !!!", "New Speed: " & $setupSPEEDLIMIT &@CRLF& "Old Speed : " &  $setupSPEEDLIMITOLD)

par contre ton : case $SpeedLimit correspond à quoi ?

Je n'ai pas tout ton code mais tu dois avoir une boucle while je pense , du style :

Code : Tout sélectionner

$SpeedLimit=GUICtrlCreateButton("change New Default Speed", $xGUI, $yGui,$longueur_bouton,$hauteur_bouton)

While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
        Case $msg = $SpeedLimit
            $setupSPEEDLIMIT =inputbox("Question","Enter The New Default Speed Limit",$setupSPEEDLIMITOLD,"",250,125)  
            IniWrite("Speedzone.ini", "SPEEDLIMIT", "SPEEDLIMIT", $setupSPEEDLIMIT)
            IniWrite("Speedzone.ini", "SPEEDLIMIT", "SPEEDLIMITOLD", $setupSPEEDLIMITOLD)
            GetRide()
            MsgBox(64, "The New Speed Limit is : !!!", "New Speed: " & $setupSPEEDLIMIT &@CRLF& "Old Speed : " &  $setupSPEEDLIMITOLD)

        EndSelect
WEnd
 
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Gui 4 Boutons pour écrire Yes où No dans fichier INI

#6

Message par pierrotm777 »

Super, Merci beaucoup !

C'est bien ce que je voulais.

Oui , Désolé j'ai bien une boucle while ...
Répondre