BitAND permet D'effectuer un AND sur deux flags
Les flag, c'est une facon que l'on a trouvé pour donner plusieurs info (de type oui/non) sur une seule variable
la variable avec aucun flag est à 0
000000 en binaire
les flag sont des multiple de 2 (1,2,4,8 etc.), pour donner un flag, il faut additioner sa valeur à la variable
la variable avec le flag 8 est egale à 8
010000 en binaire
pour envoyer plusieurs flag, il suffit de les aditioner entre eux
la variable avec le flag 8 et le flag 2 est egale à 10
010010 en binaire
les diferent bit de la variable transportant les flag devienneny donc des booleen (variable egale 0 ou 1) indiquant Vrai ou Faux à differentes conditions.
L'opperateur AND compart les bit de deux valeurs, et renvoi 1 quand les deux bit sont sur 1
0 AND 0 = 0 ; 1 AND 0 = 0 ; 0 AND 1 = 0 ; 1 AND 1 = 1
1001 AND 0101 = 0001
GUICtrlRead($verrif_personnage1) renvoi le flag de l'etat de ton checkbox/radio
$GUI_CHECKED est une constante (variable prédéfini avant le debut du programme) correspondant au falg que renvoit une checkbox/radio cochée.
En appliquant AND sur ces deux valeur, on peut savoir si elle sont identique. Imaginons $GUI_CHECKED = 100101
100101 AND 100101 = 100101
Donc GUICtrlRead($verrif_personnage1) AND $GUI_CHECKED = $GUI_CHECKED
C'est une facon de comparer deux valeurs
En fait, le probleme, c'est que $verrif_personnage1 est egale a l'identifiant de ton objet (handle), il fallait utiliser un GUICtrlRead() pour savoir ce qu'il est et non pas qui il est.
Mais, une petite question,
if GUICtrlRead($verrif_personnage1) = $GUI_CHECKED Then
n'aurait pas marché aussi ?
Je ne m'y connait pas trop donc j'espere ne pas avoir dit de connerie
Edit d'apres avoir dormi ^^': effectivement, j'ai dis quelque conneries

If $v = $flag then ne fonctionne que si la liste des flag activés est la meme que celle comparé
Le BitAND permet justement de mettre en evidance un flag avant de lancer la comparaison, afin de savoir si ce flag et activé sans s'occuper des autres.
Attention
Dans ton code,
$personnage = GUICtrlCreateCombo ("Xelor", 160,35,80) ;Création du combo
$personnage = inputbox("DofusLoggeur","Indiquez le nom de votre choix:")
Tu utilise deux foi la variable $personnage pour deux elements !
Apres avoir ouver l'inputbox, la variable $personnage ne pointe plus vers le combo, et tu ne peux plus recuperer les informations s'y trouvants !
de plus, filewrite($file,$personnage) ecris l'handle d'un combo/input, il faut utiliser un GUICtrlRead() (mais le probleme soulevé plus haut demande a revoir ca ^^')
Mon conseil
Je ne sais pas ce que tu veux faire au final avec ton script, donc je ne dis pas que ce que je fais est mieux, mais dans l'etat actuel, il me semble plus simple de faire ceci :
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstants.au3>
Guicreate("test", 300, 200, -1, -1) ;Création de la fenêtre
GUISetState(@SW_SHOW)
Guictrlcreatelabel("Choisissez le personnage:",10,37) ;Création du texte
$verrif_personnage1 = GUICtrlCreateRadio("",137,38) ;Création du radio 1 qui correspond au combo
GUICtrlSetState($verrif_personnage1,$GUI_CHECKED) ;Cocher le radio 1
$personnage = GUICtrlCreateCombo ("Xelor", 160,35,80) ;Création du combo
GUICtrlSetData(-1,"Feca|Ecaflip|Enutrof|Iop|Pandawa|Sram|Eniripsa|Sadida|Sacrieur|Cra|Osamadas","Xelor") ;Ajout de mémoire dans le combo
$verrif_personnage2 = GUICtrlCreateradio("",137,65) ;Création du radio 2 qui correspond au bouton "autre..."
$personnage_autre = GUICtrlCreateInput("",160,63,50,20) ;créaton de l'input "autre"
$boutton_ok = Guictrlcreatebutton("OK",125,150,50,25)
while 1
$nmsg = guigetmsg()
Switch $nmsg
case $GUI_EVENT_CLOSE
Exit
case $boutton_ok
$file = fileopen("test.txt",9) ;Ouvrir le fichier texte ou le créer
if GUICtrlRead($verrif_personnage1) = $GUI_CHECKED Then ;Si c'est le 1er radio qui est coché alors
$personnageselec = guictrlread($personnage) ; on ecrit dans $personnageselec la valeur contenue dans $personnage (que l'on recup grace a guictrlread()
Else ; si c'est l'autre radio qui est coché
$personnageselec = guictrlread($personnage_autre) ; alors on ecrit dans $personnageselec la valeur contenue dans $personnage_autre (que l'on recup grace a guictrlread()
EndIf ;on fini le if
filewrite($file,$personnageselec) ;Ecrire dans le fichier texte. $personnageselec grace au IF precedent, et soit egale a ce qu'il y a dans le combo, ou dans le input suivant le radio
fileclose($file) ;Le fermer
endswitch
wend
J'ai remplacé le bouton de la fenetre popup par une zone de saisie, et dans le IF, j'ai utilisé une nouvelle variable, dans la quel on ecrit le contenu, soit du combo soit de l'input suivant l'etat du radio.
Il suffit apres d'ecrire dans le fichier le contenu de cette variable