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 :
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.
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.
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.
Entrée : ARRAY [1..255] OF BYTE = 72, 69, 76, 76, 79;
Order : FALSE
Space : TRUE
Chaîne : ‘EHLL O’
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.
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.
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 :
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".