/***************************************************************************/
/* exemple d'utilisation de l'APi Iconv pour convertir de CCSID vers CCSID */
/* ATTENTION, type CLLE et 7.2 minimum (pour %len) voir ici la version RPG */
/***************************************************************************/
PGM PARM(&P1 &P1LEN &P2)
/* on passe &P1 et sa longueur, on récupère &P2) */
DCLPRCOPT ALWRTVSRC(*YES) BNDDIR(QC2LE)
dcl &p1 *char 2000
dcl &p1len *dec (15 5)
dcl &p2 *char 4000
dcl &p2len *dec (15 5)
DCL VAR(&HANDLE) TYPE(*CHAR) LEN(52)
DCL VAR(&RETOUR) TYPE(*INT) STG(*DEFINED) LEN(4) +
DEFVAR(&HANDLE 1)
DCL VAR(&cd) TYPE(*CHAR) STG(*DEFINED) LEN(48) +
DEFVAR(&HANDLE 5)
/* structure décrivant le CCSID d'origine */
DCL VAR(&from) TYPE(*CHAR) LEN(32)
DCL VAR(&FROMCCSID) TYPE(*INT) STG(*DEFINED) +
LEN(4) DEFVAR(&FROM 1)
DCL VAR(&FROMconV) TYPE(*INT) STG(*DEFINED) +
LEN(4) DEFVAR(&FROM 5)
DCL VAR(&FROMSUBS) TYPE(*INT) STG(*DEFINED) +
LEN(4) DEFVAR(&FROM 9)
DCL VAR(&FROMSHIFT) TYPE(*INT) STG(*DEFINED) +
LEN(4) DEFVAR(&FROM 13)
DCL VAR(&FROMLEN) TYPE(*INT) STG(*DEFINED) +
LEN(4) DEFVAR(&FROM 17)
DCL VAR(&FROMerr) TYPE(*INT) STG(*DEFINED) +
LEN(4) DEFVAR(&FROM 21)
DCL VAR(&FROMres) TYPE(*char) STG(*DEFINED) +
LEN(8) DEFVAR(&FROM 25)
/* structure décrivant le CCSID destination */
DCL VAR(&to) TYPE(*CHAR) LEN(32)
DCL VAR(&toCCSID) TYPE(*INT) STG(*DEFINED) +
LEN(4) DEFVAR(&to 1)
DCL VAR(&toCONV) TYPE(*INT) STG(*DEFINED) +
LEN(4) DEFVAR(&to 5)
DCL VAR(&toSUBS) TYPE(*INT) STG(*DEFINED) +
LEN(4) DEFVAR(&to 9)
DCL VAR(&toSHIFT) TYPE(*INT) STG(*DEFINED) +
LEN(4) DEFVAR(&to 13)
|