Synthaxe ?

cs_kamalou Messages postés 17 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 17 mars 2015 - 7 avril 2009 à 13:14
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 8 avril 2009 à 06:10
bonjour à!

qui peu m'expliquer ce que signifie cette ligne

 If lBitMask And lWrk Then iResult = iResult + clBase1LwB
sachant que lBitMask est un long ainsi que lWrk

je voudrais aussi savoir se que vaut &H80000000 and decimal

merci d'avance

4 réponses

lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
7 avril 2009 à 14:17
Re Bonjour,

Pas la peine de faire de double post. J'ai répondu sur celui-ci : http://www.vbfrance.com/forum/sujet-COMPARAISON-VALEUR_1293696.aspx#1

Bonne Prog
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 avril 2009 à 14:22
&h800000000 vaut 2147483648
mais ca n'a pas un grand interet de la savoir.


le And permet de faire un ET logique. de faire un masque au niveau des bits.

en binaire, ton hexa vaut:

10000000000000000000000000000000

et ca c'est interessant (sisi)

en gros, le test va permettre d'extraire le bit qui là est à un de la valeur de lWrk.


avec de petites valeurs, pour exemple, on peut avoir :

lBitMask = &hC0 soit (1100 0000) en binaire.

si lWrk = &hEE, on aura
11000000 AND 11101110 => 1100000
donc different de 0, ton test est vrai

si lWrk = &h30, on aura
11000000 AND 00110000 => 0000000
donc 0, ton test est faux
0
cs_kamalou Messages postés 17 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 17 mars 2015
8 avril 2009 à 00:12
merci renfield pour ton explication elle est tres clair.

cependant, en quoi le mask peut il m'aider.

cordialement
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
8 avril 2009 à 06:10
on s'en sert souvent pour combiner plusieurs valeur boolean

par exemple, on pourrais stocker un combinaison pour savoir si notre texte est
- gras
- souligne
- italique
- barré

on pourrais considérer:
Private Const txtBold = 1&
Private Const txtUnderline = 2&
Private Const txtItalic = 4&
Private Const txtStroke = 8&

et faire:

Dim eStyle as Long
eStyle = txtUndeline Or txtItalic

Donc, pour combiner, on utilise 'Or'.

et pour extraire, on l'a vu :

If (eStyle And txtBold)=txtBold Then
Text1.Font.Bold = True
Else
Text1.Font.Bold = False
End If

If (eStyle And txtUnderline)=txtUnderline Then
Text1.Font.Underline = True
Else
Text1.Font.Underline = False
End If

...
0
Rejoignez-nous