Synthaxe ?

Signaler
Messages postés
17
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
17 mars 2015
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
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

Messages postés
403
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
7 août 2020
1
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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
&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
Messages postés
17
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
17 mars 2015

merci renfield pour ton explication elle est tres clair.

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

cordialement
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
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

...