Cómo rellenar cadenas de caracteres del sistema central con espacios

Puede definir las propiedades de una cadena de modo que el entorno en tiempo de ejecución del Integrador de transacciones (TI) agregue caracteres de espacio para rellenar la representación del sistema central de la cadena en lugar de depender de un carácter de terminación null.

Para usar un carácter de espacio o un carácter de terminación null

  1. En Microsoft Visual Studio, haga clic con el botón derecho en el objeto y, a continuación, haga clic en Propiedades.

  2. En Información del tipo de datos de host en el panel Propiedades , haga clic en Delimitación de cadenas.

  3. Seleccione Espacio rellenado o Terminado nulo.

    En la tabla siguiente se describe lo que sucede con cada opción de delimitación (espacio rellenado o terminado nulo) al convertir al tipo de cadena indicado.

Tipo de operación de cadena ¿Qué ocurre para cada tipo de operación de delimitación de cadenas?
Conversión a cadena EBCDIC Espacio acolchado. El entorno en tiempo de ejecución de TI agrega caracteres de espacio de un solo byte al final de la cadena hasta que se rellenan todos los bytes de la cadena con formato PIC X.
Terminado nulo. El entorno en tiempo de ejecución de TI agrega un único carácter NULO al final de la cadena si hay espacio en el recuento de PIC X para el byte.
Conversión de la cadena EBCDIC Espacio acolchado. El entorno en tiempo de ejecución de TI quita los caracteres de espacio de un solo byte del final de la cadena.
Terminado nulo. El entorno en tiempo de ejecución de TI examina desde el principio de la cadena y detiene la conversión en el primer carácter NULO que encuentra en la cadena.
Conversión a cadena DBCS Espacio acolchado. El entorno en tiempo de ejecución de TI agrega caracteres de espacio de doble byte al final de la cadena hasta que se rellenan todos los caracteres de la cadena con formato PIC G.
Terminado nulo. El entorno en tiempo de ejecución de TI agrega un carácter NULO de juego de caracteres de doble byte (DBCS) al final de la cadena si hay espacio en el recuento de PIC G para los bytes.
Conversión de la cadena DBCS Espacio acolchado. El entorno en tiempo de ejecución de TI quita caracteres de espacio de doble byte desde el final de la cadena.
Terminado nulo. El entorno en tiempo de ejecución de TI examina desde el principio de la cadena y detiene la conversión en el primer carácter NULL de DBCS que encuentra en la cadena.
Conversión a cadena entremezclada Espacio acolchado. El entorno en tiempo de ejecución de TI agrega caracteres de espacio de un solo byte al final de la cadena hasta que se rellenan todos los bytes de la cadena con formato PIC X. Si el carácter de terminación de la cadena UNICODE se asigna a un carácter DBCS, el entorno en tiempo de ejecución de TI agrega un carácter SI antes de agregar los caracteres de espacio.
Terminado nulo. El entorno en tiempo de ejecución de TI agrega un único carácter NULL de byte al final de la cadena si hay espacio en el recuento de PIC X. Si el carácter de terminación de la cadena UNICODE se asigna a un carácter DBCS, el entorno en tiempo de ejecución de TI agrega un carácter SI antes de agregar el carácter NULL.
Conversión de cadena entremezclada Espacio acolchado. El entorno en tiempo de ejecución de TI quita los caracteres de espacio de un solo byte y de doble byte del final de la cadena. Cuando quita los caracteres de espacio, el entorno en tiempo de ejecución de TI trata cualquier carácter SI de terminación como si fuera un espacio.
Terminado nulo. El entorno en tiempo de ejecución de TI examina desde el principio de la cadena y detiene la conversión en el primer carácter NULO (de cualquier ancho) que encuentra.

El control especial se produce para una cadena que es la última en el búfer del host y que se marca como última es variable. Por ejemplo:

  • Espacio acolchado. Tras la conversión a una cadena de código decimal codificado binario extendido (EBCDIC), la cadena finaliza por el recuento de longitud del búfer contenedor, por lo que no contiene caracteres de espacio adicionales. Tras la conversión de una cadena EBCDIC, el búfer se considera terminado por el recuento de longitud del búfer contenedor; a continuación, la cadena se examina para el relleno en blanco. El host puede enviar esta cadena en blanco rellenada más allá de los datos significativos o no rellenados en blanco, pero con el último carácter significativo de la cadena en la última posición del búfer contenedor. El carácter de espacio viene determinado por el tipo de cadena (single, double o intermixed).

  • Terminado nulo. Tras la conversión a una cadena EBCDIC, la cadena se envía tal y como está. El entorno en tiempo de ejecución de TI comprueba la longitud de la cadena y, a continuación, comprueba que se envía el número exacto de caracteres. En otras palabras, el número de caracteres enviados es igual a la longitud de la cadena. No se anexa ningún terminador nulo ni espacios al final de la cadena.

    En las tablas siguientes se muestra cómo funciona la delimitación de cadenas cuando la propiedad Delimiting String se establece en Space Padded frente a Null terminado en combinación con la configuración de tamaño variable. En todos los ejemplos se supone que la declaración de datos del sistema central es PIC X(5). "b" representa un espacio,"?" representa datos sin asignar y "\0" representa un valor NULL.

Delimitación de cadenas establecida en Espacio rellenado y tamaño de variable no activo

Estación de trabajo Dirección Gran sistema (mainframe)
ABC\0 Para hospedar 'ABCbb'
ABCb Para hospedar 'ABCbb'
CBA Desde host 'CBAbb'
CBA\0? Desde host 'CBA\0?'
CBA\0 Desde host 'CBA\0b'

Delimitación de cadenas establecida en Espacio rellenado y tamaño de variable activo

Estación de trabajo Dirección Gran sistema (mainframe)
ABC\0 Para hospedar 'ABC'
Abb Para hospedar 'Abb'
CBA Desde host 'CBAbb'
CBA\0? Desde host 'CBA\0?'
CBA\0 Desde host 'CBA\0b'

Delimitación de cadenas establecida en Null terminated y el tamaño de variable no activo

Estación de trabajo Dirección Gran sistema (mainframe)
ABC\0 Para hospedar 'ABC\0?'
ABC Desde host 'ABC\0?'
ABCbb Desde host 'ABCbb'
ABC Desde host ABC\0\0'

Delimitación de cadenas establecida en Null terminated y el tamaño de variable activo

Estación de trabajo Dirección Gran sistema (mainframe)
ABC\0 Para hospedar 'ABC\0'
ABC Desde host 'ABC\0?'
ABCbb Desde host 'ABCbb'
ABC Desde host ABC\0\0'

Consulte también

Cadenas de caracteres y páginas de códigos del sistema central