AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachsten?
Thema durchsuchen
Ansicht
Themen-Optionen

Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachsten?

Ein Thema von Helmi · begonnen am 28. Dez 2005 · letzter Beitrag vom 29. Dez 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#1

Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachsten?

  Alt 28. Dez 2005, 17:00
Hallo,

ich habe ein Byte und 8 Boolsche Variablen.

Wie kann ich am besten die 8 Bool-Variablen je nach Wert des Bytes ansteuern?

gibts da eine procedure dafür oder etwas ähnliches?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachs

  Alt 28. Dez 2005, 17:08
Komische Frage, weil man Variablen nicht ansteuert...
Um zu prüfen, ob das N.te Bit (N=0..7) gesetzt ist, kannst Du das hier machen:
Delphi-Quellcode:
Function IsBitSet (aByte : Byte; aBit : Byte) : Boolean;
Begin
  Result := (aByte and (1 shl aBit)) <> 0;
End;
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachs

  Alt 28. Dez 2005, 17:29
hallo

sorry - man beschreibt Variablen - man steuert sie nicht an!

Deine function ist leider nicht das was ich brauche.

Ich habe ein Byte und je nach Wert des Bytes sollen die Variablen beschrieben werden.
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachs

  Alt 28. Dez 2005, 17:31
Delphi-Quellcode:
type
  TBoolByteArray = array[0..7] of Boolean;

function ByteToBoolArray(B: Byte): TBoolByteArray;
var i: Integer;
begin
  for i := 0 to 7 do
    Result[i] := (B shr (7-i)) and 1;
end;
Ist das eher was?
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#5

Re: Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachs

  Alt 28. Dez 2005, 17:36
Oder allgemein:
Delphi-Quellcode:
// Binäre Darstellung eine Speicherstelle der Länge ASize (in Byte) als
// dynamisches Boolean-Array
function GetBits(const AValue; const ASize: Cardinal): TBooleanDynArray;
var
  i: Integer;
begin
  SetLength(Result, ASize * 8);
  for i := 0 to ASize * 8 - 1 do
    Result[i] := PByte(Integer(@AValue) + i div 8)^ and (1 shl (i mod 8)) <> 0;
end;
[add] @Dax: Du weißt einem Boolean ein Byte zu . [/add]
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachs

  Alt 28. Dez 2005, 17:53
@Dax, @Khabarakh: irgendwie bekomm ich eure beiden Functions nicht zum laufen

bei Dax-Function bekomm ich "[Fehler] Unit1.pas(110): Inkompatible Typen: 'Boolean' und 'Integer'" bei
Result[i] := (B shr (7 - i)) and 1; bei Khabarakh: "Inkomplatible Typen" bei
  SetLength(Result, ASize * 8); Sorry!
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#7

Re: Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachs

  Alt 28. Dez 2005, 17:56
Result[i] := ((B shr (7 - i)) and 1) = 1; Sorry, so sollts gehen
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachs

  Alt 28. Dez 2005, 17:57
Zitat von Dax:
Result[i] := ((B shr (7 - i)) and 1) = 1; Sorry, so sollts gehen
Du bist spitze!

Vielen Dank - jetzt gehts!
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#9

Re: Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachs

  Alt 28. Dez 2005, 18:04
Zitat von Helmi:
bei Khabarakh: "Inkomplatible Typen" bei
  SetLength(Result, ASize * 8);
Wo sollen da inkompatible Typen sein? Mit Delphi 6 läuft es jedenfalls .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#10

Re: Byte-Wert in 8 Bool-Variablen anzeigen - wie am einfachs

  Alt 28. Dez 2005, 18:09
Zitat von Khabarakh:
Zitat von Helmi:
bei Khabarakh: "Inkomplatible Typen" bei
  SetLength(Result, ASize * 8);
Wo sollen da inkompatible Typen sein? Mit Delphi 6 läuft es jedenfalls .
bei dem Result
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz