ArrayOfByte_TO_String: Konvertieren eines Byte-Arrays in das Stringformat

 

ArrayOfByte_TO_String-Funktion

Anschlussplan

Diese Abbildung zeigt den Anschlussplan für die Funktion ArrayOfByte_TO_String:

G-SG-0030330.3.gif-high.gif

 

 

Funktionsbeschreibung

Der Ausgangsstring [255] ist ein Satz von Stringzeichen, der dem ASCII-Wert des im Byteformat angegebenen Eingangsbereichs entspricht.

Wenn der Reihenfolge-Eingang auf TRUE gesetzt ist, dann entspricht die Zeichenreihenfolge im Ausgangsstring der Bytereihenfolge im Eingangsbereich. Das bedeutet, dass sich die Reihenfolge der Eingangsbytes und die Reihenfolge der am Ausgang zurückgegebenen Stringzeichen 1:1 entsprechen, wie in Beispiel 1 erläutert.

Wenn der Reihenfolge-Eingang auf FALSE gesetzt ist, dann ist die Reihenfolge der Zeichen im Ausgangsstring so, dass das dem ASCII-Wert am Eingang [1] entsprechende Stringzeichen an der Ausgangsposition [2] des Ausgangs [1..255] dargestellt wird. Das dem ASCII-Wert am Eingang [2] entsprechende Stringzeichen wird an der Ausgangsposition [1] des Ausgangs [1..255] dargestellt.

Dementsprechend wird das dem ASCII-Wert am Eingang [3] entsprechende Stringzeichen an der Ausgangsposition [4] des Ausgangs [1..255] dargestellt. Das dem ASCII-Wert am Eingang [4] entsprechende Stringzeichen wird an der Ausgangsposition [3] des Ausgangs [1..255] dargestellt, wie in Beispiel 2 erläutert.

Nur wenn der Reihenfolge-Eingang FALSE, der Leerzeicheneingang TRUE und die Anzahl der Eingangsbytes ungerade sind, wird vor dem letzten Stringzeichen des Ausgangsstrings ein Leerzeichen gesetzt, wie in Beispiel 3 und 4 gezeigt.

Wenn der Reihenfolge-Eingang jedoch TRUE ist, hat der Leerzeicheneingang keine Auswirkung auf den Ausgang, wie in Beispiel 6 gezeigt.

Beispiel 1

Eingang: ARRAY [1..255] OF BYTE = 72, 69, 76, 76, 79;

Reihenfolge: TRUE

Leerzeichen: FALSE

String: 'HELLO'

Wie oben gezeigt entspricht die Reihenfolge der Zeichen im Ausgangsstring der Reihenfolge der Eingangsbytes, d. h. der Bytewert an der ersten Position des Arrays [1..255] ist 72. Dies entspricht dem Wert an der ersten Position des Ausgangsstrings, einem 'H'. Der Bytewert an der zweiten Position des Arrays [1..255] ist 69, was dem Wert an der zweiten Position des Ausgangsstrings entspricht, usw.

Beispiel 2

Eingang: ARRAY [1..255] OF BYTE = 65, 66, 67, 68, 69, 70, 71;

Byte-Reihenfolge: FALSE

Leerzeichen einfügen: FALSE

String: ‘BADCFEG’

Wie oben gezeigt, ist die Reihenfolge der Zeichen im Ausgangsstring gegenüber der Reihenfolge der Eingangsbytes verändert, d. h. der Bytewert an der ersten Position von Array [1..255] ist 65, was dem Stringwert an der zweiten Position des Ausgangsstrings (A) entspricht. Der Bytewert an der zweiten Position von Array [1..255] ist 66, was dem Stringwert an der ersten Position des Ausgangs (B) entspricht. Analog dazu ist der Bytewert an der dritten Position von Array [1..255] 67, was dem Stringwert an der vierten Position des Ausgangs (C) entspricht. Der Bytewert an der vierten Position von Array [1..255] schließlich ist 68 und entspricht dem Stringwert der dritten Position des Ausgangs (D), usw.

Beispiel 3

Eingang: ARRAY [1..255] OF BYTE = 72, 69, 76, 76, 79;

Reihenfolge: FALSE

Leerzeichen: TRUE

String: ‘EHLL O’

Beispiel 4

Eingang: ARRAY [1..255] OF BYTE = 65, 66, 67, 68, 69, 70, 71;

Reihenfolge: FALSE

Leerzeichen: TRUE

String: ‘BADCFE G’

Wie in den obigen Beispielen 3 und 4 gezeigt, ist die Anzahl von Eingängen im Beispiel 3 gleich 5 und im Beispiel 4 gleich 7. Da 5 und 7 ungerade Zahlen sind, ist der Reihenfolge-Eingang FALSE und der Leerzeicheneingang TRUE. Somit sind die Stringausgänge 'EHLL O' bzw. 'BADCFE G'.

HINWEIS: Wenn die Anzahl der Bytes am Eingang jedoch 255 beträgt, ist der Reihenfolge-Eingang FALSE und der Leerzeicheneingang TRUE. Der Leerzeicheneingang wird unbedeutend, wie in Beispiel 5 unten erläutert.

Beispiel 5

Eingang: ARRAY [1..250] OF BYTE = 65 und ARRAY [251..255] OF BYTE = 66, 67, 68, 69, 70;

Reihenfolge: TRUE

Leerzeichen: TRUE/FALSE

String[1..250]: 'A' und String[251..255] = ‘CBEDF’

Wie im Beispiel oben gezeigt, beeinflusst der Leerzeicheneingang den Ausgangsstring nicht, wenn die Anzahl der Bytes am Eingang 255 beträgt.

Beispiel 6

Eingang: ARRAY [1..255] OF BYTE = 65, 66, 67, 68, 69, 70, 71;

Reihenfolge: TRUE

Leerzeichen: TRUE

String: ‘ABCDEFG’

Wie oben gezeigt, hat der Leerzeicheneingang keine Bedeutung, wenn der Reihenfolge-Eingang TRUE ist.

Beschreibung der Eingangspins

In dieser Tabelle werden die Eingangspins der Funktion ArrayOfByte_TO_String beschrieben:

Eingang

Datentyp

Beschreibung

i_abyIput

ARRAY[0..255] OF BYTE

Eingangswert

Bereich: 0 bis 255

i_xOrdr

BOOL

TRUE: Nach Eingangsreihenfolge

FALSE: Höher- und niederwertiges Byte vertauscht

i_xSpce

BOOL

TRUE: Ein Leerzeichen wird eingefügt, wenn i_xOrdr Low ist.

FALSE: Es wird kein Leerzeichen eingefügt.

HINWEIS: I_xSpce fügt ein Leerzeichen vor dem letzten Zeichen des Ausgangsstrings ein, wenn der Reihenfolge-Eingang FALSE und die Anzahl der Eingangsbytes ungerade ist.

Beschreibung der Ausgangspins

In dieser Tabelle werden die Ausgangspins der Funktion ArrayOfByte_TO_String beschrieben:

Ausgang

Datentyp

Beschreibung

ArrayOfByte_TO_String

STRING(255)

Ausgabe von Stringzeichen

HINWEIS: Die Stringgröße für die Ausgabe muss zwingend als [255] definiert werden, andernfalls wird die Standardgröße von 80 verwendet.

Instantiierungs- und Verwendungsbeispiel

Diese Abbildung zeigt eine Instanz der Funktion ArrayOfByte_TO_String:

G-SG-0030331.1.gif-high.gif

 

 

Mit Reihenfolge-Eingang und ohne Leerzeicheneingang

Ist der Eingang:

oi_abyIput [255]

oEingang [1] = 65

oEingang [2] = 66

oEingang [3] = 67

oEingang [4] = 68

oEingang [5] = 69

oi_xOrdr: TRUE

oi_xSpce: FALSE

ArrayOfByte_TO_String gibt ‘ABCDE’ aus.

Mit Reihenfolge-Eingang und mit Leerzeicheneingang

Ist der Eingang:

oi_abyIput [255]

oEingang [1] = 65

oEingang [2] = 66

oEingang [3] = 67

oEingang [4] = 68

oEingang [5] = 69

oi_xOrdr: FALSE

oi_xSpce: TRUE

ArrayOfByte_TO_String gibt ‘BADC E’ aus.