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

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] Annuler valeur vide dans $Input si aucune saisie

#1

Message 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
Modifié en dernier par jeanmimigab le ven. 18 juil. 2014 21:40, modifié 1 fois.
Avatar du membre
parazitenew
Niveau 7
Niveau 7
Messages : 310
Enregistré le : sam. 10 déc. 2011 15:08
Localisation : Algerie
Status : Hors ligne

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

#2

Message 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
Avatar du membre
jeanmimigab
Niveau 5
Niveau 5
Messages : 123
Enregistré le : sam. 08 oct. 2011 14:01
Status : Hors ligne

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

#3

Message 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:
Avatar du membre
parazitenew
Niveau 7
Niveau 7
Messages : 310
Enregistré le : sam. 10 déc. 2011 15:08
Localisation : Algerie
Status : Hors ligne

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

#4

Message 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
Avatar du membre
jeanmimigab
Niveau 5
Niveau 5
Messages : 123
Enregistré le : sam. 08 oct. 2011 14:01
Status : Hors ligne

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

#5

Message par jeanmimigab »

oki,
Merci encore pour tes conseils et bon Weekend :wink:
Répondre