CONVERT

El verbo CONVERT traduce una cadena de caracteres ASCII a EBCDIC o una cadena de caracteres EBCDIC a ASCII. La cadena que se va a convertir se denomina cadena de origen. La cadena convertida se denomina cadena de destino.

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

Sintaxis

  
struct convert {  
    unsigned short       opcode;  
    unsigned char        opext;  
    unsigned char        reserv2;  
    unsigned short       primary_rc;  
    unsigned long        secondary_rc;  
    unsigned char        direction;  
    unsigned char        char_set;  
    unsigned short       len;  
    unsigned char FAR *  source;  
    unsigned char FAR *  target;  
};  

Miembros

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

opext
Campo reservado.

reserv2
Campo reservado.

primary_rc
Parámetro devuelto. Especifica el código de retorno principal que establece APPC al finalizar el verbo. Los códigos de retorno válidos varían en función del verbo APPC que se emita. Consulte la sección de códigos de retorno para obtener los códigos de error válidos para este verbo.

secondary_rc
Parámetro devuelto. Especifica el código de retorno secundario que establece APPC al finalizar el verbo. Los códigos de retorno válidos varían en función del verbo APPC que se emita. Consulte la sección de códigos de retorno para obtener los códigos de error válidos para este verbo.

direction
Parámetro proporcionado. Especifica la dirección de la conversión. Para convertir de ASCII a EBCDIC, use SV_ASCII_TO_EBCDIC. Para convertir de EBCDIC a ASCII, use SV_EBCDIC_TO_ASCII.

char_set
Parámetro proporcionado. Especifica el juego de caracteres que se va a usar para convertir la cadena de origen. Los valores permitidos incluyen SV_A (tipo Juego de caracteres), SV_AE (juego de caracteres de tipo AE) y SV_G (juego de caracteres G de tipo definido por el usuario).

len
Parámetro proporcionado. Especifica el número de caracteres que se van a convertir.

Esta longitud más el desplazamiento desde el principio del búfer de origen o de destino no debe superar el límite del segmento.

source
Parámetro proporcionado. Especifica la dirección del búfer que contiene la cadena de caracteres que se va a convertir.

Destino
Parámetro proporcionado. Especifica la dirección del búfer que se va a contener la cadena de caracteres convertida.

Este búfer puede superponerse o coincidir con el búfer al que apunta el parámetro de origen . En este caso, la cadena de datos convertida sobrescribe la cadena de datos de origen.

Códigos de retorno

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

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

SV_CONVERSION_ERROR

Código de retorno secundario; No se encontraron uno o más caracteres en la cadena de origen en la tabla de conversión. Estos caracteres se convirtieron en valores NULL (0x00). El verbo todavía se ejecutó.

SV_INVALID_CHARACTER_SET

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

SV_INVALID_DATA_SEGMENT

Código de retorno secundario; el búfer de datos que contiene la cadena de origen o de destino no encajaba en un segmento o el segmento de destino no era un segmento de lectura y escritura.

SV_INVALID_DIRECTION

Código de retorno secundario; la dirección contenía un valor no válido.

SV_INVALID_FIRST_CHARACTER

Código de retorno secundario; el primer carácter de un tipo Una cadena de origen no era válida.

SV_TABLE_ERROR

Código de retorno secundario; se produjo una de las siguientes acciones:

  • La variable de entorno CSVTBLG no especificó el archivo que contiene la tabla de conversión G de tipo escrito por el usuario.

  • La tabla no tenía el formato correcto.

  • No se encontró el archivo especificado por la variable CSVTBLG.

    SV_COMM_SUBSYSTEM_NOT_LOADED
    Código de retorno principal; no se pudo cargar o finalizar un componente necesario durante el procesamiento del verbo. Por tanto, no se pudo establecer la comunicación. Consulte al administrador del sistema para aplicar 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 ha ejecutado ningún verbo.

    SV_INVALID_VERB_SEGMENT
    Código de retorno principal; el bloque de control de verbo (VCB) se extendía más allá del final del segmento de datos.

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

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

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

  • Se emitió un CSV cuando SendMessage invocó la aplicación. Para averiguar si la aplicación se invocó con SendMessage, use la llamada a la función de la API de Windows InSendMessage.

Comentarios

El juego de caracteres de tipo A consta de:

  • Letras mayúsculas.

  • Números del 0 al 9.

  • Caracteres especiales $, #, @ y espacio.

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

    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 al final. Las letras ASCII minúsculas se traducen a letras EBCDIC mayúsculas cuando la dirección es de ASCII a EBCDIC.

    El juego de caracteres de tipo AE consta de:

  • Letras mayúsculas.

  • Letras minúsculas.

  • Números del 0 al 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. Los espacios solo se permiten al final.

    Durante la conversión, los espacios insertados (incluidos los que están en la primera posición) se convierten en 0x00. Aunque la conversión se completa, se devuelve CONVERSION_ERROR como código de retorno secundario para indicar 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.

    Los datos de una tabla de conversión de tipo G deben ser un archivo ASCII de 32 líneas de longitud. Cada línea debe constar de 32 dígitos hexadecimales, que representan 16 caracteres, y deben terminarse mediante un retorno de carro y una fuente de línea. Las primeras 16 líneas (256 caracteres) especifican los caracteres EBCDIC a los que se convierten los caracteres ASCII; las 16 líneas restantes especifican los caracteres ASCII a los que se convierten los caracteres EBCDIC.

    Los dígitos hexadecimales A a F pueden estar en mayúsculas o minúsculas. Sin embargo, puede que desee hacer que estos dígitos estén en mayúsculas para garantizar la compatibilidad con IBM ES para OS/2, versión 1.0.

Nota

Puede usar GET_CP_CONVERT_TABLE para crear una tabla de conversión escrita por el usuario de tipo G en memoria y, a continuación, almacenar la tabla en un archivo.