Page 1 sur 1

[R] Annuler valeur vide dans $Input si aucune saisie

Posté : ven. 18 juil. 2014 19:31
par jeanmimigab
Bonjour à tous(tes),

C'est encore moi le galérien de l'AU3 :mrgreen:

Je me casse la tête depuis un bon moment pour faire en sorte que mon script qui est destiné à éditer un fichier.ini avec une seule ligne pour chaque saisie .
Le script fonctionne mais j'ai un souci que je n'arrive pas à régler, c'est le fait que je saute une ligne si je lance le script et que je ne saisis rien et que j'arrête mon script.
par exemple si je lance 3 fois le script en saisissant "A" la première fois , rien du tout la deuxième fois et "B" la 3ème fois, je me retrouve avec un ligne vide entre le A et le B

comme cela:

Code : Tout sélectionner

A
une ligne vide
B
J'aimerais que si rien n'est saisis, le fichier.ini ne soit pas du tout édité et là que je coince :cry:

voici le code et merci d'avance pour votre aide :wink:

@++ JM

Code : Tout sélectionner

#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <EditConstants.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=C:\Users\Jeanmimi\Desktop\newap\edit.kxf
Global $Form1 = GUICreate("Ajouter un nom à la base de données", 399, 285, 317, 166)
GUISetFont(10, 400, 0, "MS Sans Serif")
GUISetBkColor(0xA6CAF0)
Global $Pic1 = GUICtrlCreatePic("Capture.JPG", 0, 0, 394, 111)
Global $Button1 = GUICtrlCreateButton("Valider", 130, 216, 139, 49)
GUICtrlSetFont(-1, 16, 400, 0, "Square721 BT")
Global $Input1 = GUICtrlCreateInput("test", 93, 152, 217, 24)
Global $Group1 = GUICtrlCreateGroup(" Saisir le nom et valider ", 35, 120, 329, 73)
GUICtrlSetFont(-1, 10, 400, 0, "Square721 BT")
GUICtrlCreateGroup("", -99, -99, 1, 1)
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

_Creatappini()
Func _Creatappini()
Global $ecri = guictrlread($Input1)
Global $file = FileOpen(@scriptdir & "/bdd.ini", 1)
$msg = GUIGetMsg()
Filewrite($file, "" & $ecri & @CRLF )
FileClose($file)
Exit
EndFunc

Re: [..] Annuler valeur vide dans $Input si aucune saisie

Posté : ven. 18 juil. 2014 19:47
par parazitenew
Le problème viens de cette ligne:

If $msg = $GUI_EVENT_CLOSE OR $msg = $Button1 Then Exitloop

Si l'utilisateur ferme le programme alors le script sort de la boucle while et continue vers la fonction qui s'éxecute quand même.

Ajoute une condition, si l'input n'est pas vide alors la fonction s'execute:
► Afficher le texte
Mais ton script est sans dessus dessous, pourquoi avoir mis $msg = GUIGetMsg() en plein milieu de la fonction? Pourquoi ta boucle est faite comme ceci?

Un script de ce genre serait mieu:
► Afficher le texte
Et pourquoi avoir choisis un .ini si c'est pour mettre des lignes? un fichier texte aurait suffit, d'ailleurs t'utilises des fonction d'édition de fichier texte et non de .ini

Re: [..] Annuler valeur vide dans $Input si aucune saisie

Posté : ven. 18 juil. 2014 20:03
par jeanmimigab
Bonsoir parazitenew,
ton script est sans dessus dessous
vi, c'est tout moi ça... :mrgreen:

Pour le choix du fichier en .ini c'est une erreur de choix dès le départ car ce script est pour utiliser au boulot et je voulais dissuader les autres de l'ouvrir par curiosité car une modification manuelle de ce fichier qui sert de base de données ferait planter le programme dont fait partis ce script, mais c'est vrais qu'un fichier.txt serait plus simple, quitte à lui mettre un attribut /h pour qu'il soit caché.
t'utilises des fonction d'édition de fichier texte et non de .ini
Ha, je ne pensai pas que cela soit si important :?


Je vais essayer de modifier avec tout ce que tu m'as indiqué et je te tient au courant,

Merci beaucoup pour ton aide :wink:

Re: [..] Annuler valeur vide dans $Input si aucune saisie

Posté : ven. 18 juil. 2014 21:10
par parazitenew
Si tu veux juste rajouter des lignes alors les FileWrite suffisent, pas de soucis, c'est dans le cas où tu veux manipuler un vrai .ini avec sa structure qu'il faut utiliser IniWrite

Re: [..] Annuler valeur vide dans $Input si aucune saisie

Posté : ven. 18 juil. 2014 21:39
par jeanmimigab
oki,
Merci encore pour tes conseils et bon Weekend :wink: