[R] Petit problème avec If et ElseIf

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] Petit problème avec If et ElseIf

#1

Message par jeanmimigab »

Bonjour à tous(tes),

Je n'arrive pas à conditionner le résultat de ma commande FileMove .
Le but est de déplacer des fichiers .png en les renommant.
La recherche cible les fichiers.png dont le nom commence par la sélection via $Combo1
une MsgBox doit donner le résultat de la commande mais quelque soit le résultat c'est "MsgBox(0, "Information", "Bon validé ! " qui s'ouvre.
Je ne vois pas ce qui cloche.
j'ai aussi testé avec "If @error = 0 Then", mais cela ne change rien :?

Code : Tout sélectionner

Func _Valider()
	$agent = @UserName
	$ecri2 = guictrlread($Combo1)
		if Not $ecri2 <> "" then
			MsgBox(0, "Information", "Vous n'avez pas sélectionné d'agent ! ")
			ElseIf $ecri2 <> "" then
FileMove(@scriptdir & "/mgr/" & $ecri2 & "*.png", @scriptdir & "/mag/" & "Bon validé par_" & $agent & "_*.png", $FC_OVERWRITE)
If @error Then
MsgBox(0, "Information", "Aucun bon disponible pour validation ! ")
ElseIf Not @error then
MsgBox(0, "Information", "Bon validé ! ")
EndIf
EndIf
merci d'avance et bon Week-end
Modifié en dernier par jeanmimigab le dim. 21 févr. 2016 18:06, modifié 1 fois.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Petit problème avec If et ElseIf

#2

Message par orax »

FileMove ne change pas @error. Regarde la partie Return Value de la doc.
Tu mets des /, je ne sais pas si c'est important mais Windows utilise plutôt des \ dans les chemins des dossiers.

Avec If Not $ecri2 <> "", si $ecri2 égale à 0, ça sera considéré comme une chaîne vide ""
Si tu cherches à tester si $ecri2 est vide, fais plutôt comme dans le 2ème exemple :
$ecri2 = 0
If Not $ecri2 <> "" Then
   ConsoleWrite("$ecri2 est une chaîne vide ou de valeur 0." & @CRLF)
Else
   ConsoleWrite("$ecri2 a la valeur => " & $ecri2 & @CRLF)
EndIf

; teste si la chaîne est *vraiment* vide
$ecri2 = 0
If $ecri2 == "" Then
   ConsoleWrite("$ecri2 est une chaîne vide." & @CRLF)
Else
   ConsoleWrite("$ecri2 a la valeur => " & $ecri2 & @CRLF)
EndIf
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
jeanmimigab
Niveau 5
Niveau 5
Messages : 123
Enregistré le : sam. 08 oct. 2011 14:01
Status : Hors ligne

Re: [..] Petit problème avec If et ElseIf

#3

Message par jeanmimigab »

Bonjour orax,

Merci pour les précisions concernant le contrôle de "$ecri2".
Pour ce contrôle ce, je n'ai pas de souci de fonctionnement (malgré la petite erreur dans l'approche du contrôle)

Ce qui m'embête vraiment c'est le contrôle de la bonne réalisation de la copie, car je n'arrive pas à affiché le message "Aucun bon disponible pour validation !" si la commande FileMove à échouée (le résultat et toujours ""Bon validé ! " que la copie se soit bien passée ou non )

Merci beaucoup pour ton aide :wink:
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Petit problème avec If et ElseIf

#4

Message par orax »

J'avais bien compris.
FileMove ne change pas @error. Regarde la partie Return Value de la doc.
Il faut donc tester la valeur de retour de la fonction au lieu de tester @error.

Code : Tout sélectionner

If Not FileMove(@ScriptDir & "\mgr\" & $ecri2 & "*.png", @ScriptDir & "\mag\" & "Bon validé par_" & $agent & "_.png", $FC_OVERWRITE) Then
	MsgBox(0, "Information", "Aucun bon disponible pour validation ! ")
Else
	MsgBox(0, "Information", "Bon validé ! ")
EndIf
Je ne sais pas si c'est suffisant mais il y a déjà ça à corriger.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
jeanmimigab
Niveau 5
Niveau 5
Messages : 123
Enregistré le : sam. 08 oct. 2011 14:01
Status : Hors ligne

Re: [..] Petit problème avec If et ElseIf

#5

Message par jeanmimigab »

Zut, c'était aussi simple que ça ?
mais quel boulet ce jeanmimi :mrgreen:

Merci beaucoup Orax et bonne semaine :wink:
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2282
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] Petit problème avec If et ElseIf

#6

Message par jchd »

Petite remarque au passage :

If Not $a <> "" ...
est évalué ainsi :
If (Not $a) <> "" ...
du fait de la priorité des opérateurs.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Répondre