Hi Invisible!
Hört sich interessant an ... und wie würde eine abfrage danach aussehen ?
Also wenn ich jetzt z.b. wissen möchte ob der Zustand 0x0800 zutreffend ist ?
Am besten wird das klar, wenn du die Bit ausschreibst. Der Einfachheit halber nehme ich aber ein kürzeres Beispiel (PHP, da ich in Perl nicht sattelfest bin):
// Buttons
$definedButtons = array();
$definedButtons['OK'] = 0x0001; // 0001
$definedButtons['CANCEL'] = 0x0002; // 0010
$definedButtons['YES'] = 0x0004; // 0100
$definedButtons['NO'] = 0x0008; // 1000
// beliebige Linearkombination der 4 Basiswerte
$buttons = 13; // 1101
$out = array();
foreach($definedButtons as $key => $definedButton)
{
// UND-Verküpfung ergibt entweder 0 (false) oder den Wert $definedButton (true)
if($definedButton & $buttons)
$out[] = $key;
}
echo 'Folgende Buttons sollen genutzt werden: '.implode(', ',$out);
Und natürlich hatte ich Mist erzählt. Wichtig ist, dass die Werte mit UND verknüpft werden.
ODER ist für die Erstellung des zusammengesetzten Zustands relevant.
MfG H☼psel
--
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)