Bit Zugriff auf Byte im Array

pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1341
Registered: 02 / 2009
Subject:

Bit Zugriff auf Byte im Array

 · 
Posted: 24.03.2023 - 20:47  ·  #1
Hallo Leute,

ich aktiviere gerade einen ScriptInterpreter in meiner Steuerung.
Ich habe ein Array of Byte und möchte in einem Byte des Arrays,
ein einzelnes Bit setzen/rücksetzen.

Ich habe folgendes getestet, aber der Compiler mag es so nicht:
Code
...
var
AwlVKEBuffer := Array[0..149] of Byte;
...
  for xAWL:= 0 to 149 do
          AwlVKEBuffer[xAWL].0 := VKEZustand(xAWL); // gibt True oder False zurück ...hier CompilerFehler 
       endfor;


Arbeite ich über einen Zwischenpuffer:
Code
...
var
 AwlVKEBuffer := Array[0..149] of Byte;
 AwlVKEBuffer : Byte;
...
  for xAWL:= 0 to 149 do
    AwlVKEBuffer:= AWLVKE[xAWL];
           AwlVKEBuffer.0 := VKEZustand(xAWL); // gibt True oder False zurück ...mit Puffer geht es 
     AWLVKE[xAWL]:= AwlVKEBuffer;
       endfor;


Kann der Compiler nicht Bitweise auf das Byte eines Arrays zugreifen? Oder muss ich das anderst machen?

Ich probiere es morgen mal mit einem Pointer auf das Array, ich möchte eigentlich nicht mit diesen Byte kopieren arbeiten.

Thorsten
Merlin
Administrator
Avatar
Gender:
Age: 25
Posts: 1410
Registered: 03 / 2005
Subject:

Re: Bit Zugriff auf Byte im Array

 · 
Posted: 24.03.2023 - 23:57  ·  #2
Hi Thorsten.

No the dot notation for bits is not currently supported for arrays but I am pretty sure SetBit(...), Incl, decl and Bit(...) are.

So

Code
 for xAWL:= 0 to 149 do
          SetBit( AwlVKEBuffer[xAWL], 0, RLOStatus(xAWL); // returns True or False ...here CompilerError 
       endfor;


should work, although I have not had the chance to test it yet.

Regards
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1341
Registered: 02 / 2009
Subject:

Re: Bit Zugriff auf Byte im Array

 · 
Posted: 26.03.2023 - 20:08  ·  #3
Hallo Merlin,

vielen Dank für Deine Info.

Thorsten
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 14 · Cache Hits: 14   65   79 · Page-Gen-Time: 0.03131s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI