[R] Fichier .ini

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

[R] Fichier .ini

#1

Message par cutprod »

Bonjour a tous.
J'ai fais un petit script pour exploiter un fichier .ini =
Lire et écrire des infos (crypter pour les curieux!!)
Pouvez vous me dire ce que vous en penser ?
Surtout savoir si on peut l'optimiser? ou si je peux l'exploiter tel qu'il est.
Merci d'avance.

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <String.au3> ;include pour encrypter et decrypter le fichier .ini grace a la fonction : _StringEncrypt

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 284, 241, 192, 124)
$Input1 = GUICtrlCreateInput("", 16, 24, 241, 21)
$Input2 = GUICtrlCreateInput("", 18, 61, 241, 21)
$Input3 = GUICtrlCreateInput("", 17, 95, 241, 21)
$Button1 = GUICtrlCreateButton("LECTURE .INI", 24, 144, 89, 33, $WS_GROUP)
$Button2 = GUICtrlCreateButton("ECRITURE .INI", 152, 144, 97, 33, $WS_GROUP)
$Button3 = GUICtrlCreateButton("EFFECER", 96, 192, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

        case $Button1
           lecture ()

        case $Button2
           ecriture()

        Case $Button3
           effacer()

    EndSwitch
WEnd


Func lecture ()
    $1=IniRead(@DesktopDir&"\test.ini","parametres","input1","")
    GUICtrlSetData($Input1,_StringEncrypt(0,$1,"crypt"))
    $2=IniRead(@DesktopDir&"\test.ini","parametres","input2","")
    GUICtrlSetData($Input2,_StringEncrypt(0,$2,"crypt"))
    $3=IniRead(@DesktopDir&"\test.ini","parametres","input3","")
    GUICtrlSetData($Input3,_StringEncrypt(0,$3,"crypt"))
EndFunc

Func ecriture ()
    $1= GUICtrlRead($Input1)
    IniWrite(@DesktopDir&"\test.ini","parametres","input1",""&_StringEncrypt(1,$1,"crypt"))
    $2= GUICtrlRead($Input2)
    IniWrite(@DesktopDir&"\test.ini","parametres","input2",""&_StringEncrypt(1,$2,"crypt"))
    $3= GUICtrlRead($Input3)
    IniWrite(@DesktopDir&"\test.ini","parametres","input3",""&_StringEncrypt(1,$3,"crypt"))
EndFunc

Func effacer()
    GUICtrlSetData($Input1,"")
    GUICtrlSetData($Input2,"")
    GUICtrlSetData($Input3,"")
EndFunc
Modifié en dernier par cutprod le dim. 17 oct. 2010 14:24, modifié 3 fois.
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Fichier .ini

#2

Message par Tlem »

A première vue, rien de choquant. Tout me semble correct.

Par contre je mettrais plutôt le chemin + nom du fichier ini dans une variable au début du script.
Cela éviterait de ressaisir le chemin à chaque ligne de code.
De plus, au lieu de le mettre sur le bureau, je préfèrerais le dossier Windows, ou le chemin du script lui-même.
Ensuite, avant de faire quoi que ce soit, je vérifierais si le fichier existe, car ca ne sert pas à grand chose de lire un fichier qui n'existe pas !!!

Ensuite, afin d'optimiser le code (mais c'est très subjectif), dans les deux fonctions lecture() et ecriture(), je ferais d'abord la mise en variable des trois valeur, puis en dernier je regrouperais la lecture/écriture du fichier.
Et si jamais, vous deviez avoir plus de cinq valeur à gérer, alors pensez à faire une boucle au lieu d'écrire 10 lignes. :roll:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
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: [..] Fichier .ini

#3

Message par cutprod »

Merci pour tes conseils Tlem :D
Pour la variable nom+chemin ok
Pour leur mise en valeur avant l'écriture ok
C'est pour la boucle que j'ai du mal, peux tu me donner un exemple?
Cut, srcipteur du dimanche...désolé !-)
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: [..] Fichier .ini

#4

Message par cutprod »

je retire ma question =

Code : Tout sélectionner

Func boucle()
For $i = $Input1  To $Input10
GUICtrlSetData($i,"eh bin voila!!")
Next
EndFunc
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Fichier .ini

#5

Message par Tlem »

Hummm, je doute que ca fonctionne comme cela.
Si vous avez ce besoin, on en reparlera. :wink:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
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] Fichier .ini

#6

Message par cutprod »

Non, en effet!!
Je cherche...
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Fichier .ini

#7

Message par Tlem »

Eval() est la solution. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre