Partekatu honen bidez:


CONVERTIR

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;  
};  

Members

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

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.

dirección
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 A juego de caracteres), SV_AE (juego de caracteres de tipo AE) y SV_G (juego de caracteres de tipo G 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.

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

target
Parámetro proporcionado. Especifica la dirección del búfer que 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 ejecutó correctamente.

SV_PARAMETER_CHECK
Código de retorno principal; el verbo no se ejecutó debido a un error de 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 cabe 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álido.

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 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:

  • 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:

  • 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. Los espacios solo se permiten en posiciones finales.

    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.

    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 que un retorno de carro y avance de línea finalizan. 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 ser mayúsculas o minúsculas. Sin embargo, es posible 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.