ArrayOfByte_TO_String: Konvertieren eines Byte-Arrays in das Stringformat
ArrayOfByte_TO_String-Funktion
Diese Abbildung zeigt den Anschlussplan für die Funktion ArrayOfByte_TO_String:
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.
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.
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.
Eingang: ARRAY [1..255] OF BYTE = 72, 69, 76, 76, 79;
Reihenfolge: FALSE
Leerzeichen: TRUE
String: ‘EHLL O’
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.
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.
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.
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.
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:
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.