Compartir a través de


GET_CP_CONVERT_TABLE

El verbo GET_CP_CONVERT_TABLE crea y devuelve una tabla de conversión de 256 bytes para traducir cadenas de caracteres de una página de códigos fuente a una página de códigos de destino.

En la estructura siguiente se describe el bloque de control de verbos (VCB) usado por el verbo GET_CP_CONVERT_TABLE .

Sintaxis

  
struct get_cp_convert_table {  
    unsigned short       opcode;  
    unsigned char        opext;  
    unsigned char        reserv2;  
    unsigned short       primary_rc;  
    unsigned long        secondary_rc;  
    unsigned char        reserv3[8];  
    unsigned short       source_cp;  
    unsigned short       target_cp;  
    unsigned char FAR *  conv_tbl_addr;  
    unsigned char        char_not_fnd;  
    unsigned char        substitute_char;  
};  

Miembros

Opcode
Parámetro proporcionado. Verbo que identifica el código de operación, SV_GET_CP_CONVERT_TABLE.

opext
Un campo reservado.

reserv2
Un campo reservado.

primary_rc
Parámetro devuelto. Especifica el código de retorno principal establecido por APPC al finalizar el verbo. Los códigos de retorno válidos varían en función del verbo APPC emitido. Consulte Códigos de retorno para obtener códigos de error válidos para este verbo.

secondary_rc
Parámetro devuelto. Especifica el código de retorno secundario establecido por APPC al finalizar el verbo. Los códigos de retorno válidos varían en función del verbo APPC emitido. Consulte Códigos de retorno para obtener códigos de error válidos para este verbo.

reserv3
Un campo reservado.

source_cp
Parámetro proporcionado. Especifica la página de códigos fuente de la que se convierten los caracteres. Las páginas de códigos permitidas (valores decimales) son las siguientes:

  • ASCII 437, 850, 860, 863, 865

  • EBCDIC 037, 273, 277, 278, 280, 284, 285, 297, 500

También se permiten páginas de códigos definidas por el usuario en el intervalo de 65280 a 65535.

Las páginas de códigos ASCII a veces se conocen como páginas de códigos de PC; A veces, las páginas de códigos EBCDIC se conocen como páginas de códigos host.

target_cp
Parámetro proporcionado. Especifica la página de códigos de destino a la que se convierten los caracteres. Para ver las páginas de códigos permitidas, consulte la definición anterior para source_cp.

conv_tbl_addr
Parámetro proporcionado. Especifica la dirección del búfer que va a contener la tabla de conversión de 256 bytes. El búfer debe estar en un segmento grabable y lo suficientemente largo como para contener la tabla.

char_not_fnd
Parámetro proporcionado. Especifica la acción que se debe realizar si un carácter de la página de códigos fuente no existe en la página de códigos de destino:

  • Use SV_ROUND_TRIP para almacenar un valor único en la tabla de conversión para cada carácter de página de códigos fuente.

  • Use SV_SUBSTITUTE para almacenar un carácter sustituto (especificado por substitute_char) en la tabla de conversión.

substitute_char
Parámetro proporcionado. Especifica el carácter que se va a almacenar en la tabla de conversión cuando un carácter de la página de códigos fuente no tiene ningún equivalente en la página de códigos de destino.

Códigos de retorno

SV_OK
Código de retorno principal; el verbo se ejecutó correctamente.

SV_PARAMETER_CHECK
Código de retorno principal; el verbo no se ejecutó debido a un error de parámetro.

SV_INVALID_CHAR_NOT_FOUND
Código de retorno secundario; el parámetro char_not_fnd contenía un valor no válido.

SV_INVALID_DATA_SEGMENT
Código de retorno secundario; el área de 256 bytes especificada para la tabla de conversión extendida más allá del límite del segmento o el segmento no se puede escribir.

SV_INVALID_SOURCE_CODE_PAGE
Código de retorno secundario; no se admite la página de códigos especificada por source_cp .

SV_INVALID_TARGET_CODE_PAGE
Código de retorno secundario; no se admite la página de códigos especificada por target_cp .

SV_COMM_SUBSYSTEM_NOT_LOADED
Código de retorno principal; No se pudo cargar ni finalizar un componente necesario mientras se procesaba el verbo. Por lo tanto, no se pudo realizar la comunicación. Póngase en contacto con el administrador del sistema para obtener una acción correctiva.

SV_INVALID_VERB
Código de retorno principal; El parámetro opcode no coincide con el código de operación de ningún verbo. No se ejecutó ningún verbo.

SV_INVALID_VERB_SEGMENT
Código de retorno principal; el VCB se extendió más allá del final del segmento de datos.

SV_UNEXPECTED_DOS_ERROR
Código de retorno principal; se produjo una de las condiciones siguientes:

  • El sistema de Microsoft® Windows® encontró un error al procesar el verbo. El código de retorno del sistema operativo se devolvió a través del código de retorno secundario. Si el problema persiste, póngase en contacto con el administrador del sistema para obtener una acción correctiva.

  • Se emitió un CSV desde un bucle de mensajes invocado por otra aplicación que emite una llamada de función SendMessage de Windows, en lugar de la llamada a la función PostMessage de Windows más común. No se puede realizar el procesamiento de verbos.

  • Se emitió un CSV cuando SendMessage invocó la aplicación. Puede determinar si la aplicación se ha invocado con SendMessage mediante la llamada a la función api de Windows InSendMessage .

Observaciones

El tipo Un juego de caracteres consta de:

  • Letras mayúsculas.
  • Números de 0 a 9.
  • Caracteres especiales $, #, @y espacio.

Este juego de caracteres es compatible con un tipo proporcionado por el sistema Tabla de conversión A.

El primer carácter de la cadena de origen debe ser una letra mayúscula o el carácter especial $, #o @. Los espacios solo se permiten en posiciones finales. Las letras ASCII minúsculas se traducen a letras EBCDIC mayúsculas cuando la dirección es ASCII a EBCDIC.

El juego de caracteres AE de tipo consta de:

  • Letras mayúsculas.
  • Minúsculas.
  • Números de 0 a 9.
  • Caracteres especiales $, #, @, punto y espacio.

Este juego de caracteres es compatible con una tabla de conversión de tipo AE proporcionada por el sistema.

El primer carácter de la cadena de origen puede ser cualquier carácter del juego de caracteres, excepto el espacio.

Durante la conversión, los espacios en blanco incrustados (incluidos los espacios en blanco en la primera posición) se convierten en 0x00. Aunque se completará esta conversión, CONVERSION_ERROR se devuelve como código de retorno secundario, lo que indica que la biblioteca CSV ha completado una conversión irreversible en los datos proporcionados.

Para Windows, una descripción de COMTBLG debe apuntar al Registro de Windows en \SnaBase\Parameters\Client. Para el sistema operativo OS/2, el directorio y el archivo que contiene la tabla deben especificarse mediante la variable de entorno COMTBLG. (Si no se encuentra el archivo, el sistema devuelve el parámetro SV_TABLE_ERROR check.).

El valor de SV_ROUND_TRIP para char_not_fnd solo es útil si crea una segunda tabla de conversión para convertir entre las mismas dos páginas de códigos en la dirección inversa. Si especifica el valor de SV_ROUND_TRIP en la creación de ambas tablas de conversión, cualquier carácter traducido de una página de códigos a la otra y, a continuación, no se modificará.

Al usar el valor de SV_SUBSTITUTE para char_not_fnd, la conversión de la cadena de caracteres traducida a la página de códigos original no volverá a crear necesariamente la cadena de caracteres original.

Use substitute_char solo si char_not_fnd está establecido en SV_SUBSTITUTE.

El valor almacenado en la tabla de conversión es el valor ASCII asociado al carácter. Si la tabla se usa para la conversión de ASCII a EBCDIC, el carácter que aparece en la cadena convertida es el carácter asociado al valor numérico EBCDIC en lugar de ASCII.

Por ejemplo, si proporciona el carácter de subrayado () (valor ASCII F6) al crear una tabla de conversión ASCII a EBCDIC, el carácter que aparece en las cadenas convertidas será 6, el carácter asociado al valor F6 en EBCDIC. Para usar el carácter \ como carácter sustituto en una tabla de conversión ASCII a EBCDIC, debe proporcionar el valor E1 (el valor asociado al carácter _ en EBCDIC) en lugar del carácter real.

Una página de códigos es una tabla que asocia valores ASCII o EBCDIC específicos con caracteres específicos. Si no existe un carácter de la página de códigos fuente en la página de códigos de destino, la cadena traducida (destino) difiere de la cadena original (origen).