MEM.UnpackArrayOfByte (FUN)

 

Diese Funktion der CAA_Memory.library  extrahiert ein "ARRAY OF BYTE" in einem "ARRAY OF BOOL".

abySource[0].0 -> axDestination[0]

abySource[0].1 -> axDestination[1]

...

abySource[1].0 -> axDestination[8]

...

abySource[1].7 -> axDestination[15]

...

Diese Funktion kopiert "uiNumberOfBits" von "abySource" nach "axDes­tination".

Diese Funktion gibt die in einer “abySource” betrachtete Anzahl Bytes zurück.

Wenn "pabySource", „paxDestination“ oder „uiNumberOfBits“ auf "0" gesetzt sind, wird das Kopieren nicht ausgeführt und die Funktion gibt "FALSE" zurück.

Hinweis

Die Größe des Datenfelds "axDestination" muss der Anzahl zu kopierender Bits angepasst sein! Quelle und Ziel dürfen nicht überlappen!

Eingang:

pabySource

DWORD

Adresse von ARRAY OF BYTE

paxDestination

DWORD

Adresse von ARRAY OF BOOL

uiNumberOfBits

UINT

Anzahl zu kopierender Bits

Ausgang:

MEM.PackArrayOfBoolToArrayOfByte

UINT

Anzahl erforderlicher Bytes

Beispiel:

abySource : ARRAY[0..2] OF BYTE :=  16#32, 16#01, 16#00 ;

axDestination : ARRAY[0..9] OF BOOL ;

uiNumberofBytes := MEM.UnpackArrayOfByte(

ADR(abySource), ADR(axDestination), 10) ;

->

uiNumberofBytes = 2

axDestination[0] = FALSE

axDestination[1] = TRUE

axDestination[2] = FALSE

axDestination[3] = FALSE

axDestination[4] = TRUE

axDestination[5] = TRUE

axDestination[6] = FALSE

axDestination[7] = FALSE

axDestination[8] = TRUE

axDestination[9] = FALSE