ArrayOfByte_TO_String: Conversion d'un tableau en format octet au format chaîne

 

Fonction ArrayOfByte_TO_String

Schéma d'affectation des broches

La figure ci-dessous présente le schéma d'affectation des broches de la fonction ArrayOfByte_TO_String :

G-SG-0030330.3.gif-high.gif

 

 

Description fonctionnelle

La chaîne de sortie [255] est l'ensemble des caractères de chaîne, correspondant à la valeur ASCII du tableau d'entrées donné au format Byte.

Si l'entrée ORDER a la valeur TRUE, l'ordre des caractères dans la chaîne de sortie correspond à l'ordre des octets dans le tableau d'entrée. Il existe donc une correspondance biunivoque entre l'ordre des octets d'entrée et l'ordre des caractères de chaîne renvoyés en sortie comme expliqué à l'exemple 1.

Si l'entrée ORDER a la valeur FALSE, l'ordre des caractères de la chaîne de sortie est tel que le caractère de chaîne correspondant à la valeur ASCII de input[1] est affiché en sortie en position[2] de output[1..255]. Le caractère de chaîne correspondant à la valeur ASCII de input[2] est affiché en sortie en position[1] de output[1..255].

De même le caractère de chaîne correspondant à la valeur ASCII de input[3] est affiché en sortie en position[4] de output[1..255]. Le caractère de chaîne correspondant à la valeur ASCII de input[4] est affiché en sortie en position[3] de output[1..255] comme expliqué dans l'exemple 2.

Si et uniquement si l'entrée ORDER a la valeur FALSE et si l'entrée SPACE a la valeur TRUE avec un nombre d'octets d'entrée impair, un caractère d'espace est ajouté avant le dernier caractère de la chaîne de sortie comme indiqué dans les exemples 3 et 4.

Mais si l'entrée ORDER a la valeur TRUE, l'entrée d'espace n'a aucune influence sur la sortie comme l'indique l'exemple 6.

Exemple 1

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

Order : TRUE

Space : FALSE

Chaîne : 'HELLO'

Comme indiqué ci-dessus, l'ordre des caractères dans la chaîne de sortie correspond à l'ordre des octets d'entrée, c'est-à-dire que la valeur d'octet en première position de Array[1..255] est 72, ce qui correspond à la valeur de chaîne en première position de sortie, soit H. La valeur d'octet en deuxième position de Array[1..255] est 69, ce qui correspond à la valeur chaîne en deuxième position de la sortie, soit E, etc.

Exemple 2

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

ByteOrder : FALSE

InsertSpace : FALSE

Chaîne : ‘BADCFEG’

Comme indiqué ci-dessus, l'ordre des caractères dans la chaîne de sortie est modifié, c'est-à-dire que la valeur d'octet en première position dans Array [1 à 255] est 65, ce qui correspond à la valeur chaîne en deuxième position de la sortie, soit A. La valeur d'octet en deuxième position dans Array[1 à 255] est 66, ce qui correspond à la valeur chaîne en première position de la sortie, soit B. De même, la valeur d'octet en troisième position dans Array[1 à 255] est 67, ce qui correspond à la valeur de chaîne en quatrième position de la sortie, soit C. La valeur d'octet en quatrième position dans Array[1 à 255] est 68, ce qui correspond à la valeur de chaîne en troisième position de la sortie, soit D, etc.

Exemple 3

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

Order : FALSE

Space : TRUE

Chaîne : ‘EHLL O’

Exemple 4

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

Order : FALSE

Space : TRUE

Chaîne : ‘BADCFE G’

Comme indiqué ci-dessus dans les exemples 3 et 4, le nombre d'entrées est de 5 dans l'exemple 3 et de 7 dans l'exemple 4. Comme 5 et 7 sont impairs, l'entrée ORDER a la valeur FALSE et l'entrée SPACE a la valeur TRUE. Donc, les sorties de chaîne sont "EHLL O" et "BADCFE G" respectivement.

NOTE : Mais si le nombre d'octets en entrée est 255, l'entrée ORDER a la valeur FALSE et l'entrée SPACE a la valeur TRUE. L'entrée SPACE devient non significative, comme expliqué dans l'exemple 5 ci-dessus.

Exemple 5

Entrée : ARRAY [1..250] OF BYTE = 65 et ARRAY [251..255] OF BYTE = 66, 67, 68, 69, 70;

Order : TRUE

Space : TRUE/FALSE

Chaîne[1 à 250] : 'A' et chaîne[251 à 255] = ‘CBEDF’

Comme indiqué dans l'exemple ci-dessus, si le nombre d'octets en entrée est 255, la chaîne de sortie n'est pas affectée par l'entrée SPACE.

Exemple 6

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

Order : TRUE

Space : TRUE

Chaîne : ‘ABCDEFG’

Comme indiqué ci-dessus, si l'entrée ORDER a la valeur TRUE, l'entrée SPACE devient non significative.

Description des broches d'entrée

Ce tableau décrit les broches d'entrée du bloc fonction ArrayOfByte_TO_String :

Entrée

Type de données

Description

i_abyIput

ARRAY[0..255] OF BYTE

Valeur d'entrée

Plage : 0 à 255

i_xOrdr

BOOL

TRUE : dans l'ordre de l'entrée

FALSE : intervertit les octets de poids fort et de poids faible.

i_xSpce

BOOL

TRUE : insère un espace quand i_xOrdr est à l'état bas.

FALSE : aucun espace n'est inséré.

NOTE : I_xSpce insère un caractère d'espace juste avant le dernier caractère de la chaîne de sortie, quand l'entrée ORDER a la valeur FALSE et que le nombre d'octets en entrée est impair.

Description des broches de sortie

Ce tableau décrit les broches de sortie du bloc fonction ArrayOfByte_TO_String :

Sortie

Type de données

Description

ArrayOfByte_TO_String

STRING(255)

Sortie de caractères de chaîne

NOTE : L'utilisateur doit obligatoirement définir une taille de [255] pour la chaîne de sortie, sinon la taille choisie par défaut est 80.

Instanciation et exemple d'utilisation

Cette figure présente une instance du bloc fonction ArrayOfByte_TO_String :

G-SG-0030331.1.gif-high.gif

 

 

Avec l'entrée ORDER et sans l'entrée SPACE

Si l'entrée est :

oi_abyIput [255]

oEntrée [1] = 65

oEntrée [2] = 66

oEntrée [3] = 67

oEntrée [4] = 68

oEntrée [5] = 69

oi_xOrdr : TRUE

oi_xSpce : FALSE

La fonction ArrayOfByte_TO_String affiche "ABCDE".

Avec l'entrée ORDER et l'entrée SPACE

Si l'entrée est :

oi_abyIput [255]

oEntrée [1] = 65

oEntrée [2] = 66

oEntrée [3] = 67

oEntrée [4] = 68

oEntrée [5] = 69

oi_xOrdr : FALSE

oi_xSpce : TRUE

La fonction ArrayOfByte_TO_String affiche "BADC E".