ArrayOfByte_TO_String: Conversión de matrices en formato de bytes a un formato de cadena

 

Función ArrayOfByte_TO_String

Diagrama de pines

En esta figura se muestra el diagrama de pines de la función ArrayOfByte_TO_String:

G-SG-0030330.3.gif-high.gif

 

 

Descripción funcional

La cadena de salida [255] es el conjunto de caracteres de la cadena que corresponde al valor ASCII de la matriz de entrada proporcionada en formato de bytes.

Si la entrada de Orden es TRUE, el orden de los caracteres de la cadena de salida corresponde al orden de los bytes en la matriz de entrada. Esto significa que hay una correspondencia 1:1 entre el orden de los bytes de entrada y el orden de los caracteres de la cadena devueltos en la salida, como se explica en el ejemplo 1.

Si la entrada de Orden es FALSE, el orden de caracteres de la cadena de salida será de tal forma que el carácter de la cadena correspondiente al valor ASCII en entrada [1] se muestra en la posición [2] de la salida [1..255]. El carácter de la cadena correspondiente al valor ASCII en entrada [2] se mostrará en la posición [1] de la salida [1..255].

De igual forma, el carácter de la cadena correspondiente al valor ASCII en entrada [3] se mostrará en la posición [4] de la salida [1..255]. El carácter de la cadena correspondiente al valor ASCII en entrada [4] se mostrará en la posición [3] de la salida [1..255], como se explica en el ejemplo 2.

Sólo si la entrada de Orden es FALSE, la entrada de Espacio es TRUE y el número de bytes de entrada en la entrada es impar, se agregará un carácter de espacio antes del último carácter de la cadena de salida, como se muestra en los ejemplos 3 y 4.

Pero si la entrada de Orden es TRUE, la entrada de Espacio no tendrá efecto en la salida, como se muestra en el ejemplo 6.

Ejemplo 1

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

Orden: TRUE

Espacio: FALSE

Cadena: 'HOLA'

Como se ha mostrado antes, el orden de los caracteres en la cadena de salida corresponde al orden de los bytes de entrada; es decir, el valor de los bytes en la primera posición de Matriz [1..255] es 72, que corresponde al valor de la cadena en la primera posición de la salida, que es H. El valor de los bytes en la segunda posición de Matriz[1..255] es 69, que corresponde al valor de la cadena en la segunda posición de la salida, que es O, etc.

Ejemplo 2

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

ByteOrder: FALSE

InsertSpace: FALSE

Cadena: 'BADCFEG'

Como se ha mostrado antes, el orden de los caracteres en la cadena de salida ha cambiado; el valor de los bytes en la primera posición de Matriz [1...255] es 65, que corresponde al valor de la cadena en la segunda posición de la salida, que es A. El valor de los bytes en la segunda posición de Matriz [1..255] es 66, que corresponde al valor de la cadena en la primera posición de la salida, que es B. De igual forma, el valor de los bytes en la tercera posición de Matriz [1..255] es 67, que corresponde al valor de la cadena en la cuarta posición de la salida, que es C. El valor de los bytes en la cuarta posición de Matriz[1..255] es 68, que corresponde al valor de la cadena en la tercera posición de la salida, que es D, etc.

Ejemplo 3

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

Orden: FALSE

Espacio: TRUE

Cadena: 'EHLL O'

Ejemplo 4

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

Orden: FALSE

Espacio: TRUE

Cadena: 'BADCFE G'

Como se ha mostrado antes, en los ejemplos 3 y 4, el número de entradas es 5 en el ejemplo 3 y 7 en el ejemplo 4. Puesto que 5 y 7 son números impares, la entrada de Orden es FALSE y la entrada de Espacio es TRUE. Por tanto, las salidas de la cadena son 'EHLL O' y 'BADCFE G' respectivamente.

NOTA: Sin embargo, si el número de bytes en la entrada es 255, la entrada de Orden es FALSE y la entrada de Espacio es TRUE. La entrada de Espacio pasa a ser insignificante, como se explica en el ejemplo 5 anterior.

Ejemplo 5

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

Orden: TRUE

Espacio: TRUE/FALSE

Cadena[1..250]: 'A' y Cadena[251..255] = 'CBEDF'

Como se muestra el ejemplo anterior, si el número de bytes en la entrada es 255, la salida de la cadena no se ve afectada por la entrada de Espacio.

Ejemplo 6

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

Orden: TRUE

Espacio: TRUE

Cadena: 'ABCDEFG'

Como se ha mostrado anteriormente, si la entrada de Orden es TRUE, la entrada de Espacio pasa a ser insignificante.

Descripción de pines de entrada

En esta tabla se describen los pines de entrada de la función ArrayOfByte_TO_String:

Entrada

Tipo de datos

Descripción

i_abyIput

ARRAY[0..255] OF BYTE

Valor de entrada

Rango: de 0 a 255

i_xOrdr

BOOL

TRUE: en el orden de entrada

FALSE: intercambia los bytes más alto y más bajo

i_xSpce

BOOL

TRUE: inserta un espacio cuando i_xOrdr es baja

FALSE: no se inserta ningún espacio

NOTA: I_xSpce insertará un espacio justo antes del último carácter de la cadena de salida cuando la entrada de Orden es FALSE y el número de bytes de la entrada es impar.

Descripción de pines de salida

En esta tabla se describen los pines de salida de la función ArrayOfByte_TO_String:

Salida

Tipo de datos

Descripción

ArrayOfByte_TO_String

STRING(255)

Salida de los caracteres de cadena

NOTA: Es obligatorio para el usuario definir el tamaño de la salida de la cadena como [255]; de lo contrario el tamaño se toma como 80 de forma predeterminada.

Ejemplo de instanciación y uso

En esta figura se muestra una instancia de la función ArrayOfByte_TO_String:

G-SG-0030331.1.gif-high.gif

 

 

Con entrada de Orden y sin entrada de Espacio

Si la entrada es:

oi_abyIput [255]

oEntrada [1] = 65

oEntrada [2] = 66

oEntrada [3] = 67

oEntrada [4] = 68

oEntrada [5] = 69

oi_xOrdr: TRUE

oi_xSpce: FALSE

ArrayOfByte_TO_String muestra 'ABCDE'.

Con entrada de Orden y con entrada de Espacio

Si la entrada es:

oi_abyIput [255]

oEntrada [1] = 65

oEntrada [2] = 66

oEntrada [3] = 67

oEntrada [4] = 68

oEntrada [5] = 69

oi_xOrdr: FALSE

oi_xSpce: TRUE

ArrayOfByte_TO_String muestra 'BADC E'.