begin process at 2010 09 06 04:02:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

General

 > 

Utiliser une variable numérique pour mémoriser des valeurs


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Utiliser une variable numérique pour mémoriser des valeurs

samedi 28 février 2009 à 12:32:28 | Utiliser une variable numérique pour mémoriser des valeurs

PROGRAMMIX

Bonjour,

J'avais vu dans un code-source (dont j'ai perdu la trace), qu'une personne mémorisait des valeurs dans une variable numérique et j'aimerais en savoir plus.

L'idée est la suivante.  Dans un programme concernant des bâtiments, il faut que j'indique si un bâtiment est destiné à accueillir :
(a) uniquement les membres du personnel ;
(b) du public ;
(c) majoritairement des enfants ;
(d) des personnes à mobilité réduite ;
- etc.

Il est clair que pour certains bâtiments, différentes options sont possible : a+b, c+d, etc.

Comment doit-on s'y prendre pour transformer cela en valeur numérique ?
Si j'ai bonne mémoire, dans le code-source cité ci-dessus), cela donnait des trucs du genre :
"Si dans" MaVariableBatiment se trouve "LaValeurCorrespondant_à_2" et "LaValeurCorrespondant_à_4"..
...alors le bâtiment accueille du public et des personnes à mobilité réduite.

J'espère que mon explication sera suffisamment claire pour obtenir une réponse (toute aussi claire)...

D'avance merci

Programmix
samedi 28 février 2009 à 12:34:58 | Re : Utiliser une variable numérique pour mémoriser des valeurs

PROGRAMMIX

Je crois qu'il s'agit là d'une manière de convertir les variables qui était utilisée au temps du DOS...

Programmix
samedi 28 février 2009 à 12:51:57 | Re : Utiliser une variable numérique pour mémoriser des valeurs

jack

Administrateur CodeS-SourceS
Salut
Oui, tu as mis le doigt dessus :
Dans la mesure où tu peut avoir entre 1 et 4 réponses indépendantes ou ensemble, il faut donner des valeurs différentes à ces options, en s'appuyant sur la méthode ressemblant au "décimal codé binaire":
   (a)   1
   (b)   2
   (c)   4
   (d)   8
Si (b) et (d) sont cochée, suffit de faire l'addition : Code = 2 + 8
A la relecture de Code :
   Case à cocher (a) = vrai si "Code And 1 > 0"
   Case à cocher (b) = vrai si "Code And 2 > 0"
   Case à cocher (c) = vrai si "Code And 4 > 0"
   Case à cocher (d) = vrai si "Code And 8 > 0"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
samedi 28 février 2009 à 13:18:24 | Re : Utiliser une variable numérique pour mémoriser des valeurs

PROGRAMMIX

Merci pour la réponse, c'est ce que je pensais.

Mais étant encore peu habitué au "décimal code binaire", comment dois-je faire pour monter dans le nombre de variables ?  Est-ce toujours le double du précédent ?

Ce que je crains, c'est d'utiliser un nombre pour une option qui pourrait correspondre à une somme d'autres options.

Programmix
samedi 28 février 2009 à 13:28:26 | Re : Utiliser une variable numérique pour mémoriser des valeurs

ghuysmans99

Membre Club
Réponse acceptée !
Pas de problème : si tu utilise des nombres dans la série (y = 2^x) tu n'auras jamais de collision.
Evidemment, la taille de la variable change en fonction du nombre d'options :
8 options ou moins : Byte
16 options ou moins : Integer
32 options ou moins : Long
http://img404.imageshack.us/img404/7166/signaturegf4.gif
samedi 28 février 2009 à 13:40:59 | Re : Utiliser une variable numérique pour mémoriser des valeurs

PROGRAMMIX

Ca commence à se préciser et s'éclaircir dans ma tête.

Puis-je abuser en demandant un exemple de code VB6 pour 10 options ?

Programmix
samedi 28 février 2009 à 14:35:43 | Re : Utiliser une variable numérique pour mémoriser des valeurs

PROGRAMMIX

J'ai testé cela et cela marche...

Option Explicit

Enum Caract
    travailleur = 1
    dupublic = 2
    enfants = 4
    mobilitereduite = 8
    logement = 16
End Enum

Private Sub Command1_Click()

    Dim i As Integer
   
    If Me.Check1(0) Then i = i + Caract.travailleur
    If Me.Check1(1) Then i = i + Caract.dupublic
    If Me.Check1(2) Then i = i + Caract.enfants
    If Me.Check1(3) Then i = i + Caract.mobilitereduite
    If Me.Check1(4) Then i = i + Caract.logement
   
    Me.List1.AddItem "Batiment 1 =" & i
       
End Sub

Private Sub Command2_Click()
    Dim s As String
    Dim i As Integer
   
    Call RAZ
   
    s = Me.List1.Text
    i = CInt(Mid(s, InStr(1, s, "=") + 1))
   
    If i And Caract.travailleur Then Me.Check1(0).Value = 1
    If i And Caract.dupublic Then Me.Check1(1).Value = 1
    If i And Caract.enfants Then Me.Check1(2) = 1
    If i And Caract.mobilitereduite Then Me.Check1(3) = 1
    If i And Caract.logement Then Me.Check1(4) = 1
   
   
   
End Sub

Private Sub RAZ()
    Me.Check1(0).Value = 0
    Me.Check1(1).Value = 0
    Me.Check1(2).Value = 0
    Me.Check1(3).Value = 0
    Me.Check1(4).Value = 0
End Sub


Programmix
samedi 28 février 2009 à 15:44:43 | Re : Utiliser une variable numérique pour mémoriser des valeurs

ghuysmans99

Membre Club
    If Me.Check1(0) Then i = i Or Caract.travailleur
    If Me.Check1(1) Then i = i Or Caract.dupublic
    If Me.Check1(2) Then i = i Or Caract.enfants
    If Me.Check1(3) Then i = i Or Caract.mobilitereduite
    If Me.Check1(4) Then i = i Or Caract.logement


Ca ne sert à rien d'additionner d'autant plus que ça traine !
http://img404.imageshack.us/img404/7166/signaturegf4.gif
samedi 28 février 2009 à 15:53:51 | Re : Utiliser une variable numérique pour mémoriser des valeurs

PROGRAMMIX

Là par contre, tu m'embrouilles...

Peux-tu m'expliquer ce qui se passe lorsqu'on fait i = i Or caract.dupublic par rapport à mon addition ?


Programmix
samedi 28 février 2009 à 16:31:31 | Re : Utiliser une variable numérique pour mémoriser des valeurs

ghuysmans99

Membre Club
Réponse acceptée !
Avec un OR, tu peux le faire tant de fois que tu veux cette opération sans risquer de changer d'autres options (dans ton cas) sans le faire exprès.
http://img404.imageshack.us/img404/7166/signaturegf4.gif

1 2

Cette discussion est classée dans : variable, utiliser, numérique, valeurs, mémoriser


Répondre à ce message

Sujets en rapport avec ce message

comment faire passer un nom de variable à un module afin d'utiliser ensuite les valeurs de cette variable [ par zifnig ] J'aimerais mutualiser une fonction d'affichage dans une textbox pour plusieurs tableaux contenant du texte.Du genre :dim variable() as stringpublic af comment faire pour utiliser les valeurs de formulaires sur un autre formulaire avec VB 6.0 [ par phil1964 ] Bonjour,Je suis un parfait débutant et j'avance pas à pas vers la réalisation de m on premier petit programme, qui est en fait un QCM. Je bloque sur l listbox et récupération variable [ par Sandy084 ] Bonjour! J'ai une listbox contenant des valeurs, et je souhaiterai faire une boucle dans laquelle je récupére les valeurs qu'elle comporte et effectue FormulaArray avec variable [ par mikeredwards ] Bonjour à tous, Je travaille sur un projet pour mon apprentissage, et je voudrais utiliser VBA Excel pour créer une interface utilisateur et automatis utiliser le timer comme reference [ par nourhanan ] Bonjourje veux creer un programme qui va utiliser le timer comme reference mais lors de l'execution il me donne l'erreur suivant "variable objet ou va Faire référence à une variable [ par pingouin84k ] Bonjour, Je n'arrive pas à faire un truc tout simple... J'utilise probablement pas le bon vocabulaire dans mes recherches. J'ai des valeurs stockées Utiliser une Variable [ par jobertomeu ] Bonjour, je voudrais incorporer mes variables dans ma requête qui se présente entre guillemets comme ça : Dim db = TextBox3.Text Dim Incrémenter une variable [ par Sevoli ] Bonsoir,Je travaille sous Access 2003 et j'importe des données XML d'un fichier via VBA.Certains noeuds XML ont x valeurs séparées par une virgule aus Comment utiliser contif avec le nombre de cellues variable [ par Gahoza ] Bonjour, J'ai un soucis avec ma fonction Countif qui doit utiliser une plage des données variable avec le temps. Voilà le morceau de mon code : Dim affectation d'un champs de valeurs [ par damd ] salut a tousj'aurai aime savoir comment affecter a une variable (texte, constant) un champs de valeur, pour dire que cette variable peut prendre soit


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales