Page 1 sur 1

[R] Aide à la compréhension de fonctions ...

Posté : sam. 08 oct. 2011 12:50
par PandiPanda
Bonjour,
je vous sollicite pour divers petits problème que je rencontre, à savoir la compréhension de certaine fonction récuperer sur le forum anglais. Certes cela fonctionne bien, mais je voudrai tout de même comprendre pour savoir réellement ce que j'utilise :P
► Afficher le texteles fonctions, elles permettent de faire du Screen => Binary
j'aurai besoin d'aide de compréhension pour ce qui est en rouge,
Merciii ^^

Re: [..] Aide à la compréhension de fonctions ...

Posté : sam. 08 oct. 2011 14:13
par mikell
pour la première : dans l'include GDIplus.au3, il y a

Code : Tout sélectionner

_GDIPlus_Startup()
....
$ghGDIPDll = DllOpen("GDIPlus.dll")
Pour la 2ème je vois pas, le Return est censé renvoyer une valeur mais si on commente la ligne ça ne semble rien changer au déroulement du script :?:

Code : Tout sélectionner

 ;   Return SetError($aResult[0] <> 0, 0, $aResult[0] = 0)
Return SetError($aResult[0] <> 0, 0, $aResult[0] = 0) renvoie "true" donc on mettrait "Return True" ce serait pareil ?

Re: [..] Aide à la compréhension de fonctions ...

Posté : sam. 08 oct. 2011 14:19
par PandiPanda
Merci de plonger dans mon problème
mais je pense que Return SetError($aResult[0] <> 0, 0, $aResult[0] = 0)
met un "boolean,0,boolean" mais je voit pas comment on pourrait l'utiliser dans une variable ...

Re: [..] Aide à la compréhension de fonctions ...

Posté : sam. 08 oct. 2011 17:10
par mikell
Image Je le verrais assez comme ça

SetError($aResult[0] <> 0, 0, $aResult[0] = 0) : booléen, met @error=1 si $aResult[0]<>0, sinon @error=0

Return SetError($aResult[0] <> 0, 0, $aResult[0] = 0) : renvoie la valeur booléenne de l'expression $aResult[0]=0 (vrai ou faux)

Cela dit l'intérêt de cette ligne est peut-être d'économiser des lignes de code, genre
If $aResult[0] = 0 Then
Return true
Else
SetError(1, 0)
Return false
EndIf

La confirmation d'un spécialiste serait la bienvenue...

Re: [..] Aide à la compréhension de fonctions ...

Posté : sam. 08 oct. 2011 17:28
par Tlem
D'après ce code de test :

Code : Tout sélectionner

$Ret = Test(0)
MsgBox(0, "Test avec 0", "Error = " & @error & @CRLF & "Extented = " & @extended & @CRLF & "Return = " & $Ret)

$Ret = Test(1)
MsgBox(0, "Test avec 1", "Error = " & @error & @CRLF & "Extented = " & @extended & @CRLF & "Return = " & $Ret)

$Ret = Test(0x230)
MsgBox(0, "Test avec 0x230", "Error = " & @error & @CRLF & "Extented = " & @extended & @CRLF & "Return = " & $Ret)


Func Test($iVal)
    Local $aResult[1] = [$iVal]
    Return SetError($aResult[0] <> 0, 0, $aResult[0] = 0)
EndFunc
Nous avons donc $aResult[0] <> 0 qui retourne une valeur booléenne (1 ou 0) en fonction de la valeur de $aResult[0].
Idem pour $aResult[0] = 0, mais cette foi-ci la valeur booléenne est True ou False !

Re: [..] Aide à la compréhension de fonctions ...

Posté : sam. 08 oct. 2011 17:37
par PandiPanda
oulah déchiffrer tout ca, c'est tout un art '^^

Donc si j'ai bien compris ...

le @error sera mis à 1 si c'est des valeurs differentes de 0
et retourne "True" seulement à 0

me trompe?

Autre question, voyez vous une utilité à ceci? gain de place, autre ? ^^

Re: [..] Aide à la compréhension de fonctions ...

Posté : sam. 08 oct. 2011 18:01
par mikell
Sauf erreur de ma part et au vu de ses commentaires Tlem aurait pu mettre "l'analyse de mikell est correcte" :mrgreen:
L'aide dit : SetError(entier, entier, paramètre) donc c'est logique qu'on ait "1" et "true"
► Afficher le texte
PandiPanda a écrit : voyez vous une utilité à ceci? gain de place, autre ? ^^
Heu t'as pas lu mon post ?
Apparemment sur 1 seule ligne, en fonction de l'analyse d'une expression on définit @error, et en fonction de la valeur de cette expression on renvoie une valeur booléenne ^^

Re: [..] Aide à la compréhension de fonctions ...

Posté : sam. 08 oct. 2011 18:06
par PandiPanda
Si Si j'ai bien lu, j'ai juste zappé xD
Piiiiiiiis c'et vraiment du costaud ... je me voit mal utilisé ca :P

Re: [..] Aide à la compréhension de fonctions ...

Posté : sam. 08 oct. 2011 18:08
par mikell
Bah c'est vrai, mais si tu veux avoir l'air d'un bon programmeur bien trapu, faut t'y mettre, fieu ! :mrgreen:

Re: [..] Aide à la compréhension de fonctions ...

Posté : sam. 08 oct. 2011 21:59
par Tlem
mikell a écrit :Tlem aurait pu mettre "l'analyse de mikell est correcte"
Bien que je ne soit pas forcément un 'spécialiste', j'ai (de part mon message) confirmé le votre puisque vous le demandiez :
mikell a écrit :La confirmation d'un spécialiste serait la bienvenue...