cs_dayvid
Messages postés212Date d'inscriptionmardi 18 janvier 2011StatutMembreDernière intervention12 février 2013
-
24 janv. 2013 à 23:56
cs_dayvid
Messages postés212Date d'inscriptionmardi 18 janvier 2011StatutMembreDernière intervention12 février 2013
-
25 janv. 2013 à 20:04
Bonsoir,
Je ne savais vraiment pas comment trouver ceci et d'ailleurs le titre n'est pas très explicite !
Bon, j'ai recopier le problème sur un code très simple car j’allais pas donner tous mon code ou ça ne l'aurais pas fait je pense !
Voici le code en question:
Module Module1
Sub Main()
Dim A As Integer = 0
A = 2
A = A Or 3
A = A Or 5
A = A Or 8
A = A Or 12
Console.WriteLine(A)
Console.ReadLine()
End Sub
End Module
Si je me suis pas trompé et normalement non, "Or" veux dire en gros "Avec", en plus, ou insérer ou un truc du genre
Donc là j'ai bien fais: A = 2 avec 3 avec 5 avec 8 avec 13
Le but du jeu ici est de savoir si A contient la valeur 3 par exemple ou 8 ou même plusieurs
Application:
Imaginer que chaque valeur est une CheckBox
Si elle est activé, alors la valeur existe
Sinon elle n’existe pas !
Si par exemple la CheckBox qui a la valeur 3 est activer ainsi que celle qui a la valeur 8
Si je fais par exemple:
Si A contient la valeur 3 alors faire
...
Sinon Si A contient la valeur 8 faire
...
Sinon
...
Fin Si
Petit code pour donner un petit exemple dans mon programme:
If RadioBouton_Information.Checked = True Then
Style = MsgBoxStyle.Information
ElseIf RadioBouton_Question.Checked = True Then
Style = MsgBoxStyle.Question
ElseIf RadioBouton_Avertissement.Checked = True Then
Style = MsgBoxStyle.Exclamation
ElseIf RadioBouton_Critique.Checked = True Then
Style = MsgBoxStyle.Critical
End If
If RadioBouton_Ok.Checked = True Then
Style = Style Or MsgBoxStyle.OkOnly
ElseIf RadioBouton_Ok_Annuler.Checked = True Then
Style = Style Or MsgBoxStyle.OkCancel
ElseIf RadioBouton_Oui_Non.Checked = True Then
Style = Style Or MsgBoxStyle.YesNo
ElseIf RadioBouton_Oui_Non_Annuler.Checked = True Then
Style = Style Or MsgBoxStyle.YesNoCancel
ElseIf RadioBouton_Recommencer_Annuler.Checked = True Then
Style = Style Or MsgBoxStyle.RetryCancel
ElseIf RadioBouton_Abandonner_Recommencer_Igniorer.Checked = True Then
Style = Style Or MsgBoxStyle.AbortRetryIgnore
End If
If RadioButton_Bouton_1.Checked = True Then
Style = Style Or MsgBoxStyle.DefaultButton1
ElseIf RadioButton_Bouton_2.Checked = True Then
Style = Style Or MsgBoxStyle.DefaultButton2
ElseIf RadioButton_Bouton_3.Checked = True Then
Style = Style Or MsgBoxStyle.DefaultButton3
End If
If CheckBox_Boîte_de_dialogue_au_premier_plan.Checked = True Then
Style = Style Or MsgBoxStyle.MsgBoxSetForeground
End If
If CheckBox_Interrompre_lapplication_en_court.Checked = True Then
Style = Style Or MsgBoxStyle.ApplicationModal
End If
If CheckBox_Interrompre_toutes_les_lapplications.Checked = True Then
Style = Style Or MsgBoxStyle.SystemModal
End If
If CheckBox_Le_texte_se_lit_de_droite_à_gauche.Checked = True Then
Style = Style Or MsgBoxStyle.MsgBoxRtlReading
End If
If CheckBox_Aligné_le_texte_de_la_boîte_à_droite.Checked Then
Style = Style Or MsgBoxStyle.MsgBoxRight
End If
If CheckBox_Afficher_en_plus_le_bouton_Aide.Checked Then
Style = Style Or MsgBoxStyle.MsgBoxHelp
End If
Bon ba maintenant il faut que je sache qu'est se qui à été choisie !
C'est pour crée un code en fonction des valeurs choisie !
Sers toi du mode pas à pas (F8) et des points d'arrêts (F9) pour savoir ce que fait ton code. Promène ensuite ta souris sur tes variables pour vérifier leur valeur.
Pourquoi tu me dit ça banana32
En quoi cella va t-il m'apporter la réponse
Parce que le mode pas à pas permet de suivre l'exécution de ton code instruction par instruction. Tu vas voir à chaque instruction quelle valeur prend quelle variable et quelle instruction est excutée après.
Si je me suis pas trompé et normalement non, "Or" veux dire en gros "Avec", en plus, ou insérer ou un truc du genre
Donc là j'ai bien fais: A = 2 avec 3 avec 5 avec 8 avec 13
OR, c'est un ou logique, il retourne TRUE dès que une seule des conditions est remplie. Je n'ai jamais essayé ce que tu veux faire avec VB.net, mais la tradition microsoftienne avec des comparaisons logiques entre entiers c'est de dire que:
en VB6 et les versions précédentes et VBA : -1 et tout nombre positif vaut TRUE et rien d'autre. O vaut FALSE et rien d'autres.
en VB.net : 1 et tout autre nombre positif vaut TRUE et rien d'autres. 0 vaut false et rien d'autre.
Regarde dans ton aide pour AND, ANDALSO, ORALSO
Déjà le code est t-il correcte ?!
C'est comme ça qu'il faut faire ?
Rien compris à la question. Si tout ton bataclan c'est pour déterminer les icônes à afficher dans une Msgbox ou une MessageBox, normalement il suffit juste de mettre des + en chaque constante et VB se charge du reste.
Avant que tu ne pose la question:
MsgBox : Fonction VisualBasic conservée pour maintenir la compatibilité avec les versions précédentes de VB. Ne peut pas être utilisée ailleurs que dans programmes VB
MessageBox : Classe de Framework .net. Peut être utilisée dans n'importe quel langage compatible avec le Framework.
Les valeurs des constantes ne sont pas toujours les mêmes pour l'une et l'autre. Ils en parlent dans l'aide.
J'ai modifié ta première procédure pour avoir ceci:
Sub Main()
Dim A As Integer = 0
A = 2
Console.WriteLine(A)
A = A Or 3
Console.WriteLine(A)
A = A Or 5
Console.WriteLine(A)
A = A Or 8
Console.WriteLine(A)
A = A Or 12
Console.WriteLine(A)
Console.ReadLine()
End Sub
et j'ai obtenu ces résultats:
A A Or 3> a = 3
A A Or 5> a = 7
A A Or 8> a = 15
A A Or 12> a = 15
Donc ton "Avec" est pour le moins imprécis
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 25 janv. 2013 à 15:17
Complémentairement, si on veut savoir si le chiffre est utilisé dans la décomposition des puissances de 2 d'un autre chiffre, il faut faire un And :
5 est-il utilisé dans la décomposition en puissance de 2 de 19 ?
00101 (5)
10011 (19)
-----
00001 (1)
Le résultat ne donne pas 5 : le 5 ne figure donc pas dans cette décomposition
3 est-il utilisé dans la décomposition en puissance de 2 de 19 ?
00011 (3)
10011 (19)
-----
00011 (3)
Le résultat donne 3 : le 3 figure donc dans cette décomposition
En VB :
Si (Y And X) = X, c'est que X est utilisé dans la décomposition de Y