begin process at 2012 02 11 16:45:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Algorithme

 > 

Autre

 > 

Determiner "Valeur1 in valeurs" lorsque Valeur1 et Valeurs sont de type Word ...


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

Determiner "Valeur1 in valeurs" lorsque Valeur1 et Valeurs sont de type Word ...

mercredi 14 juillet 2010 à 14:54:56 | Determiner "Valeur1 in valeurs" lorsque Valeur1 et Valeurs sont de type Word ...

MAURICIO

Administrateur CodeS-SourceS
Bonjour!

voilà, j' ai un souci d' écriture ...

A l' image de ce que l' on fait avec une variable de type "Set of":
if goColumnResize in DBGrid1.Options
then beep;

Je voudrais tester si "Valeur1" (de type Word) est comprise dans "Valeurs" (de type Word):
Disons que j' ai 4 constantes:
Valeur1 = 1;
Valeur2 = 2;
Valeur3 = 4;
Valeur4 = 8;
et que j' ai "Valeurs" représentant donc la somme d' un regroupement de Valeur1 à Valeur4.
Disons que Valeurs = 5:
Valeurs est donc représenté par Valeur3 + Valeur1.

Je voudrais donc écrire quelque chose dans ce genre :
if valeur3 in valeurs then Beep;

Je voudrais savoir s' il existe quelques chose pour faire cela ^^

Merci de votre aide,
Mauricio
mercredi 14 juillet 2010 à 16:11:37 | Re : Determiner "Valeur1 in valeurs" lorsque Valeur1 et Valeurs sont de type Word ...

cirec

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Salut,

Code Delphi :

procedure TForm1.Button9Click(Sender: TObject);
const
  
Valeur1 = 1;
  Valeur2 = 2;
  Valeur3 = 4;
  Valeur4 = 8;
var
  
Valeurs: Word;
begin
  
Valeurs := 5;

  if (Valeurs and Valeur1) = Valeur1 then
    if 
(Valeurs and Valeur3) = Valeur3 then
      
ShowMessage( 'Valeur1 && Valeur3 présents');
end;




@+Cirec
mercredi 14 juillet 2010 à 16:14:21 | Re : Determiner "Valeur1 in valeurs" lorsque Valeur1 et Valeurs sont de type Word ...

cirec

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
où encore:
Code Delphi :

  if (Valeurs and (Valeur1 or Valeur3)) = (Valeur1 or Valeur3) then
    
ShowMessage( 'Valeur1 && Valeur3 présents');

à toi de voir ce qui t'arrange



@+Cirec
mercredi 14 juillet 2010 à 16:24:05 | Re : Determiner "Valeur1 in valeurs" lorsque Valeur1 et Valeurs sont de type Word ...

MAURICIO

Administrateur CodeS-SourceS
Salut Cirec,

c' est exactement ça! J' ai déjà vu ça mais je n' arrivais pas à me rappeler, merci beaucoup!!!
J' allais partir sur une fonction mais là, c' est beaucoup mieux

Regarde mes yeux pleins de reconnaissance:
A+
jeudi 15 juillet 2010 à 03:40:26 | Re : Determiner "Valeur1 in valeurs" lorsque Valeur1 et Valeurs sont de type Word ...

Bacterius

Membre Club
De façon générale, on peut voir un nombre comme un vecteur binaire, où chaque bit représente une information particulière. Une propriété intéressante du système binaire fait qu'il est très simple de décider si tel ou tel nombre est contenu dans tel autre nombre sous la loi d'addition.

Donc oui, de façon générale, si B and A <> 0, alors A est compris dans B.

Cordialement, Bacterius !

jeudi 15 juillet 2010 à 03:41:27 | Re : Determiner "Valeur1 in valeurs" lorsque Valeur1 et Valeurs sont de type Word ...

Bacterius

Membre Club
B and A = A excuse ... B and A <> 0 fonctionne quand on vérifie un seul bit

Cordialement, Bacterius !

jeudi 15 juillet 2010 à 10:07:46 | Re : Determiner "Valeur1 in valeurs" lorsque Valeur1 et Valeurs sont de type Word ...

MAURICIO

Administrateur CodeS-SourceS
Merci Bacterius pour ces précisions ^^
A+
jeudi 15 juillet 2010 à 11:49:00 | Re : Determiner "Valeur1 in valeurs" lorsque Valeur1 et Valeurs sont de type Word ...

cirec

Membre Club Administrateur CodeS-SourceS
Bacterius a écrit

B and A = A excuse ... B and A <> 0 fonctionne quand on vérifie un seul bit

en fait ça fonctionne pour les deux.

la plupart des Dev utilisent "B and A > 0" mais je trouve que c'est plus parlant quand on relis un code :"if (B and A) = A then"
que "if (B and A) <> 0 then"


sinon avec cette méthode on peut (par exemple) stocker 32 valeurs Boolean dans un entier non signé.
Les composants sont "Tagés" de 0 à 31 (Maximum):
Code Delphi :

function Tfrm_Main.GetCheckedComponents: Cardinal;
var
  
Idx: Integer;
begin
  
Result := 0;
  for Idx := 0 to ComponentCount - 1 do
    if 
Components[Idx] is TCheckBox then
    begin
      with 
TCheckBox(Components[Idx]) do
        if 
Checked then
          
Result := Result or (1 shl Tag);
    end
    else if 
Components[Idx] is TRadioButton then
    begin
      with 
TRadioButton(Components[Idx]) do
        if 
Checked then
          
Result := Result or (1 shl Tag);
    end;
end;

// la récupération des Valeurs se fait comme ceci:
procedure Tfrm_Main.SetCheckedComponents(Value: Cardinal);
var
  
Idx: Integer;
begin
  for 
Idx := 0 to ComponentCount - 1 do
    if 
Components[Idx] is TCheckBox then
    begin
      with 
TCheckBox(Components[Idx]) do
        
Checked := (Value and (1 shl Tag)) > 0;
    end
    else if 
Components[Idx] is TRadioButton then
    begin
      with 
TRadioButton(Components[Idx]) do
        
Checked := (Value and (1 shl Tag)) > 0;
    end
end
;







@+Cirec


Cette discussion est classée dans : type, valeur1, valeurs, word, in


Répondre à ce message

Sujets en rapport avec ce message

Traduction C++ => Delphi type Union ? [ par uruma ] Bonjour, en effet, je suis au bord du suicide acr je ne vois pas comment traduire ce petit bout de codes C en Delphi ?Le voici :typedef union { struct OLE word : pb de type de données avec opendatasource [ par manudel ] J'ai un fichier texte. J'utilise OLE pour fusionner avec Word. J'ai généré une macro word, que je veux transposer en delphi. Je mets le contenu de mon PSingle [ par FleX2009 ] Bonjour, Je doit lire un buffer de type PSingle (c'est à dire ^Single) qui contient 512 valeurs réelles (de type single), or je ne voit pas comment un nombre de page dans un documnet type pdf ou word [ par yvessimon ] Bonjour,Avant d'imprimer un document de type pdf ou word je souhaite vérifier le nombre de page de ce document.Aussi comment lire ce nombre de page ?M Tri de tableau de valeurs numériques de type réel [ par Dzidzi ] Bonjour à tous,Je souhaite trier dans un ordre croissant un tableau de valeurs numériques de type réel .Et ensuite afficher le rang de ces valeurs et définition type entier [ par zwyx ] Bonjour à tous,Je dois étudier des valeurs que je choisis pour l'instant de stocker au format Word. Mais je veux pouvoir un jour à les stocker en <fon Explications fonctions [ par penvernyo ] Bonjour à tous,je viens d'aquérir un USBLAB-12B, périphérique qui permet via le port USB de commander un appareil électrique, dans mon cas un robot.Ce Vérifier si une chaîne est numérique (de type Double) ? [ par kabakas ] SalutJe veux savoir comment vérifier si une chaîne dans un TEdit est numérique ou non ?Delphi 7kabakas Ecrire dans Word [ par vieuxpere ] Bonjour,En suivant les tutoriaux ici et là, j'ai pu via OLE ouvir une instance Word et un Document Word, j'arrive aussi à écrire dans mon document sau


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,718 sec (4)

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