Compartir a través de


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 mainframe (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 nulo

  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 de 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 nulo terminado) 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 con relleno 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.
Terminada en null. El entorno en tiempo de ejecución de TI agrega un único carácter nulo al final de la cadena si hay espacio suficiente en el recuento de PIC X para el byte.
Conversión desde cadena EBCDIC Espacio acolchado. El entorno de ejecución de TI elimina los caracteres de espacio de un solo byte al final de una cadena de caracteres.
Terminada en null. 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 que encuentra en la cadena.
Conversión a cadena DBCS Espacio con relleno. El entorno de ejecución de TI agrega caracteres de espacio de doble byte al final de la cadena hasta que todos los caracteres de la cadena formateada en formato PIC G estén completos.
Terminada en null. El entorno de ejecución de TI agrega un carácter nulo del juego de caracteres de doble byte (DBCS) al final de la cadena si hay espacio en el recuento de bytes de PIC G.
Conversión de cadena DBCS Espacio acolchado. El entorno de ejecución de TI elimina los caracteres de espacio de doble byte al final de la cadena.
Terminada en null. El entorno de ejecución de TI examina la cadena desde el principio y detiene la conversión en el primer carácter nulo 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.
Terminada en null. El entorno de ejecución de TI agrega un único carácter nulo de un solo byte al final de la cadena si hay espacio en la capacidad de PIC X. Si el carácter de terminación de la cadena unicode se asigna a un carácter DBCS, el entorno de ejecución de TI agrega un carácter SI antes de añadir el carácter nulo.
Conversión de cadena entremezclada Espacio acolchado. El entorno en tiempo de ejecución de TI retira los caracteres de espacio de un solo byte y de doble byte desde el final de la cadena. Cuando elimina los caracteres de espacio, el entorno de ejecución en tiempo real de TI trata cualquier carácter SI de terminación como si fuera un carácter de espacio.
Terminada en null. 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 cualquiera de los anchos) que encuentra.

El manejo especial se produce para una cadena que está al final en el búfer del host y que se marca como última es variable. Por ejemplo:

  • Espacio con relleno. 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 desde una cadena EBCDIC, el búfer se considera terminado según el recuento de longitud del búfer contenedor; después, la cadena se examina para el relleno con espacios en blanco. El host puede enviar esta cadena rellenada con espacios en blanco más allá de los datos significativos o no rellenada con espacios, 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 (simple, doble o mixto).

  • Terminada en null. Tras la conversión a una cadena EBCDIC, la cadena se envía tal 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 o espacios al final de la cadena.

    En las tablas siguientes se muestra cómo funciona la delimitación de cadenas cuando la propiedad Delimitación de cadenas se establece en Relleno con espacios en comparación con Terminado en nulo 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 variable no activo

Estación de trabajo Dirección Ordenador central
ABC\0 Para hospedar 'ABCbb'
ABCb Para hospedar 'ABCbb'
CBA Desde el anfitrión 'CBAbb'
CBA\0? Desde el anfitrión CBA\0?
CBA\0 Desde el anfitrión 'CBA\0b'

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

Estación de trabajo Dirección Ordenador central
ABC\0 Para hospedar 'ABC'
Abb Para hospedar 'Abb'
CBA Desde el anfitrión 'CBAbb'
CBA\0? Desde anfitrión CBA\0?
CBA\0 Desde el 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 Ordenador central
ABC\0 Para hospedar ABC\0?
ABC Desde el servidor ABC\0?
ABCbb Desde el anfitrión 'ABCbb'
ABC Desde el anfitrión ABC\0\0'

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

Estación de trabajo Dirección Ordenador central
ABC\0 Para hospedar ABC\0
ABC Desde el anfitrión ABC\0?
ABCbb Desde el anfitrión 'ABCbb'
ABC Desde el anfitrión ABC\0\0'

Véase también

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