[R] Perdu avec le If Not

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Lems
Niveau 2
Niveau 2
Messages : 19
Enregistré le : mer. 13 févr. 2008 15:24
Status : Hors ligne

[R] Perdu avec le If Not

#1

Message par Lems »

Bonjour,

J'ai voulu remplacer mes

Code : Tout sélectionner

If ... Then (rien) Else ... EndIf[/autoit] par des [autoit]If Not ... Then ... EndIf
N'arrivant pas au résultat voulu j'ai fait un test pour voir si j'avais compris comment cela fonctionnait :

Code : Tout sélectionner

$i=1
MsgBox(0,"","On fixe i=" &$i)

If $i=1 Then
    MsgBox(0,"Cas vrai","i est à 1")
Else
    MsgBox(0,"Cas faux","i n'est pas égale à 1")
EndIf

If Not $i=1 Then
    MsgBox(0,"Cas vrai","i est différent de 1")
Else
    MsgBox(0,"Cas faux","i n'est pas différent de 1")
EndIf

$i=5
MsgBox(0,"","On fixe i=" &$i)

If $i=1 Then
    MsgBox(0,"Cas vrai","i est à 1")
Else
    MsgBox(0,"Cas faux","i n'est pas égale à 1")
EndIf

If Not $i=1 Then
    MsgBox(0,"Cas vrai","i est différent de 1")
Else
    MsgBox(0,"Cas faux","i n'est pas différent de 1")
EndIf
J'obtiens dans le premier cas (i=1) que i est à 1 et que 1 n'est pas différent de 1. donc là ça va :)
Mais dans le second cas (i=5) il me retourne i n'est pas égale à 1 et i n'est pas différent de 1 :shock: .

Je ne comprend pas d'où viens mon erreur ... Qui peut m''aider ? :cry:
Modifié en dernier par tolf le mer. 07 janv. 2009 21:40, modifié 2 fois.
Raison : mise à jour des balises de code
Les cons osent tout ! C'est d'ailleurs à ça qu'on les reconnait ;)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Perdu avec le If Not

#2

Message par Tlem »

Sur le principe, le résonnement est bon, mais lorsque je vous ait orienté vers le If Not, c'était surtout par rapport à votre code, dans lequel vous aviez une structure du genre :

Code : Tout sélectionner

If $i=X then
     Votre code de 3 kilometres de long  ;)
Else 
     Msgbox(0,"Erreur","Erreur")
EndIf

; Ici on sort du programme
 
La logique voudrait plutôt ce type là :

Code : Tout sélectionner

If Not $i <> X then
     Msgbox(0,"Erreur","Erreur")
     Exit     ; Ici on sort du programme
EndIf

     Votre code de 3 kilometres de long  ;)

; Ici on sort du programme
Ou

Code : Tout sélectionner

If Not FileExists($File) then
     Msgbox(0,"Erreur","Erreur")
     Exit     ; Ici on sort du programme
EndIf

     Votre code de 3 kilometres de long  ;)

; Ici on sort du programme
Modifié en dernier par tolf le mer. 07 janv. 2009 21:40, modifié 1 fois.
Raison : mise à jour des balises de code
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
Lems
Niveau 2
Niveau 2
Messages : 19
Enregistré le : mer. 13 févr. 2008 15:24
Status : Hors ligne

Re: [..] Perdu avec le If Not

#3

Message par Lems »

Re bonjour,

J'avais bien compris ce pourquoi vous me l'aviez orienté mais lorsque je l'adapte, il ne fonctionne plus, mon test est systématiquement faux. :cry:
C'est pour ça que j'ai fait ce petite exemple mais je ne comprend pas que la seconde condition est systématiquement fausse ...

Aussi, dans

Code : Tout sélectionner


If Not $i <> X then
     Msgbox(0,"Erreur","Erreur")
     Exit     ; Ici on sort du programme
EndIf

     mon code de 3 kilometres de long qui fonctionne quand même  ;p

 
le sigle " <> " a quel signification ? c'est un différent ? :idea:
Modifié en dernier par tolf le mer. 07 janv. 2009 21:41, modifié 1 fois.
Raison : mise à jour des balises de code
Les cons osent tout ! C'est d'ailleurs à ça qu'on les reconnait ;)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Perdu avec le If Not

#4

Message par Tlem »

Lems a écrit :le sigle " <> " a quel signification ? c'est un différent ?
Absolument.

Voici un extrait de la doc de la fonction IF :
Remarks

If statements may be nested.
The expression can contain the boolean operators of AND, OR, and NOT as well as the logical operators <, <=, >, >=, =, ==, and <> grouped with parentheses as needed.
Vous remarquez la petite annotation de fin de phrase.
Donc si vous modifier votre code comme ceci, il fonctionne :

Code : Tout sélectionner

$i=5

If Not ($i=1) Then
    MsgBox(0,"Cas vrai","i est différent de 1")
Else
    MsgBox(0,"Cas faux","i n'est pas différent de 1")
EndIf
Et oui tout çà pour des parenthèses (Je me suis fait piégé aussi) ... :?
Modifié en dernier par tolf le mer. 07 janv. 2009 21:41, modifié 1 fois.
Raison : mise à jour des balises de code
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é".
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [R] Perdu avec le If Not

#5

Message par ani »

Avatar du membre
Lems
Niveau 2
Niveau 2
Messages : 19
Enregistré le : mer. 13 févr. 2008 15:24
Status : Hors ligne

Re: [R] Perdu avec le If Not

#6

Message par Lems »

Merci beaucoup tous les deux !
Les cons osent tout ! C'est d'ailleurs à ça qu'on les reconnait ;)
Répondre