convert()

La función de sistema SysLib.convert convierte datos entre los formatos EBCDIC (sistema principal) y ASCII (estación de trabajo) o bien realiza la conversión de página de códigos dentro de un único formato. Puede utilizar SysLib.convert como nombre de función en una sentencia de invocación de función.

  SysLib.convert(
    destino anyFixedItemOrRecordOrFormVariable inout,
    dirección enumerationConversionDirection in,
    tablaConversión CHAR(8) in)
destino
Nombre del registro, elemento de datos o formulario que tiene el formato que se desea convertir. Los datos se convierten en su sitio en función de la definición de elemento de los elementos de nivel más bajo (elementos sin subestructura) en el objeto destino.

Los registros de longitud variable sólo se convierten para la longitud del registro actual. La longitud del registro actual se calcula utilizando el elemento numElementsItem del registro o se establece a partir del elemento lengthItem del registro. Se produce un error de conversión y el programa finaliza si el registro de longitud variable finaliza en medio de un campo numérico o un carácter DBCHAR.

dirección
Dirección de la conversión. "R" y "L" (incluidas las comillas) son los únicos valores válidos. Es obligatoria si se especifica tablaConversión; en caso contrario, es opcional.
"R"
Valor por omisión. Se supone que los datos están en formato remoto y se convierten a formato local.
"L"
Se supone que los datos están en formato local y se convierten a formato remoto (tal como se define en la tabla de conversión).
tablaConversión
Elemento de datos o literal (ocho caracteres, opcional) que especifica el nombre de la tabla de conversión que se utilizará para la conversión de datos. El valor por omisión es la tabla de conversión asociada al código de idioma nacional especificado cuando se generó el programa.

Consideraciones de definición

Puede utilizar el componente de opciones de enlace para solicitar que se genere la conversión de datos automática para llamadas remotas, para iniciar transacciones asíncronas remotas o para el acceso a archivos remotos. La conversión automática se realiza siempre utilizando la estructura de datos definida para el argumento que se está convirtiendo. Si un argumento tiene varios formatos, no solicite la conversión automática. En su lugar, codifique el programa para llamar explícitamente a SysLib.convert con las declaraciones de registro redefinidas que se correlacionan correctamente con los valores actuales del argumento.

Ejemplo

Record RecordA
   record_type char(3);
   item1 char(20); 
end 

Record RecordB
   record_type char(3);
   item2 bigint;
   item3 decimal(7);
   item4 char(8); 
end

Program ProgramX type basicProgram
   myRecordA RecordA;
   myRecordB RecordB {redefines = "myRecordA"};
   myConvTable char(8);
   
   function main();
      myConvTable = "ELACNENU"; // conversion table for US English
      if (myRecordA.record_type == "00A")
         SysLib.convert(myRecordA, "L", myConvTable);
      else;
         SysLib.convert(myRecordB, "L", myConvTable);
      end
     call ProgramY myRecordA;
   end 
end
Condiciones de uso | Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.