[R] IF OR AND...

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

[R] IF OR AND...

#1

Message par DimVar »

Bonjour,

Question basique :

Je cherche à faire un test sur une variable qui pourrait contenir que 2 valeurs.

Je pense donc à ce script :

Code : Tout sélectionner

$toto = inputbox ("","entrez 10 ou 14")
If $toto <> "10" OR $toto <> "14" then
Msgbox (0,"","erreur de saisie)
EndIf
Ce script m'affiche toujours la msgbox... Comprends pas Chef...
Modifié en dernier par DimVar le jeu. 03 juil. 2008 12:09, modifié 1 fois.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..]IF OR AND...

#2

Message par timmalos »

Dans ton script, tu demande à ta variable $toto d'être
:arrow: Egal à 10
:!: ET :!:
:arrow: Egal à 20

Elle va avoir du mal à remplir ces conditions :D
Non sérieusement,
Ton petit probleme vient du fait que tu n'a pas pensé qu'un "ou" équivaut à un "et"au negatif:

il suffit de mettre:

Code : Tout sélectionner

$toto = inputbox ("","entrez 10 ou 14")
If $toto <> "10"   AND  $toto   <> "20" then
Msgbox (0,"","erreur de saisie)
EndIf
Ce qui equivaut au positif à:

Code : Tout sélectionner

$toto = inputbox ("","entrez 10 ou 14")
If $toto = "10"  Or $toto   = "20" then
... blabla...
Else
Msgbox (0,"","erreur de saisie)
EndIf
Et là jen'ai pas testé mais ca devrait marcher chef !!!
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [..]IF OR AND...

#3

Message par DimVar »

Oui, ca marche. Quel boulet, j'ai même pas essayé le "AND"...
Pourtant en français (grammaticalement), je traduirais ça en disant :
"Si ma variable n'est pas egale à 10 OU 20 alors...blablabla..."
Troublant...

Merci M'sieur ;)

PS : Si je veux renvoyer l'utilisateur à l'inputbox en cas de mauvaise saisie, une idée ?
Je penserais bien à un "GOTO Inputbox" mais autoit le permet pas...
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..]IF OR AND...

#4

Message par timmalos »

plusieurs méthodes, sois tu fais une boucle

Code : Tout sélectionner

WHile 1
$toto = inputbox ("","entrez 10 ou 14")
If $toto = "10"  Or $toto   = "20" then
... blabla...
Else
Msgbox (0,"","erreur de saisie)
EndIf

WEnd
Dans ce cas, soit tu rentre la bonne valeur et tu fais le blabla, sois tu ne rentre pas la bonne valeur, tu as le msgbox et tu retourne à l'inputbox.
Si ton programme est complexe, je te conseille plutot ca:

Code : Tout sélectionner

$ok = 0
WHile $ok <> 1
$toto = inputbox ("","entrez 10 ou 14")

If $toto = "10"  Or $toto   = "20" then
$ok = 1
Else
Msgbox (0,"","erreur de saisie)
EndIf

WEnd
...Blabla...
Si tu teste comme ca, ils vont donner les memes resultats, mais la 2eme est beaucoup mieux car on sort de la boucle au plus vite, c'et toujours source d'erreur surtout si tu as deja une boule principale en "While 1"
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [R] IF OR AND...

#5

Message par DimVar »

Grand merci, pour la 1ere methode, comment sort tu de la boucle :?:
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [R] IF OR AND...

#6

Message par timmalos »

La première methode n'est pas la meilleure ...
Si tu veux vriament l'utiliser , tu sors de la boucle avec un

Hotkeyset("{ENTER}","sortir")


func sortir()
Exit
EndFunc
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [R] IF OR AND...

#7

Message par jbnh »

j'aurais plus dit exitloop, la méthode de timmalos est pour quitter le script
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [R] IF OR AND...

#8

Message par timmalos »

:oops: Sry j'ai lu trop rapidement:)
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [R] IF OR AND...

#9

Message par DimVar »

Ok, merci à tous. :wink:
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Répondre