Exec d'une commande en UNICODE

BoTTom |
          /*******************************************************************/
          /* exemple d'utilisaiton de l'APi QCAPCMD                          */
          /* qui sait exécuter des commandes en UNICODE                      */
          /********************************************************************/
          PGM
 
             DCL        VAR(&CMD) TYPE(*CHAR) LEN(14) +
                          VALUE(X'00570052004B00530050004C0046')
                          /* WRKSPLF en UTF-16 */
             DCL        VAR(&CMDLEN) TYPE(*INT) LEN(4)
             DCL        VAR(&OPTBLOCK) TYPE(*CHAR) LEN(20)
               DCL        VAR(&TYPCMD) TYPE(*INT) STG(*DEFINED) LEN(4) +
                            DEFVAR(&OPTBLOCK 1)
               DCL        VAR(&DBCS) TYPE(*CHAR) STG(*DEFINED) LEN(1) +
                            DEFVAR(&OPTBLOCK 5)
               DCL        VAR(&prompt) TYPE(*CHAR) STG(*DEFINED) LEN(1) +
                            DEFVAR(&OPTBLOCK 6)
               DCL        VAR(&syntax) TYPE(*CHAR) STG(*DEFINED) LEN(1) +
                            DEFVAR(&OPTBLOCK 7)
               DCL        VAR(&msgkey) TYPE(*CHAR) STG(*DEFINED) LEN(4) +
                            DEFVAR(&OPTBLOCK 8)
               DCL        VAR(&ccsid) TYPE(*int) STG(*DEFINED) LEN(4) +
                            DEFVAR(&OPTBLOCK 12)
               DCL        VAR(&res) TYPE(*CHAR) STG(*DEFINED) LEN(5) +
                            DEFVAR(&OPTBLOCK 16)
             DCL        VAR(&optLEN) TYPE(*INT) LEN(4)
             DCL        VAR(&CMDRT) TYPE(*CHAR) LEN(200)
             DCL        VAR(&CMDRTLEN) TYPE(*INT) LEN(4)
             DCL        VAR(&RTLEN) TYPE(*INT) LEN(4)
             DCL        VAR(&ERRCODE) TYPE(*CHAR) LEN(8) +
                          VALUE(X'0000000000000000')
 
             CHGVAR     VAR(&CMDLEN) VALUE(%LEN(&CMD))
             CHGVAR     VAR(&OPTLEN) VALUE(%LEN(&OPTBLOCK))
             CHGVAR     VAR(&CMDRTLEN) VALUE(%LEN(&CMDRT))
             CHGVAR     VAR(&res) VALUE(x'0000000000')
             /* options */
             chgvar &typcmd 0  /* exécution */
             chgvar &dbcs 0    /* non, voir CCSID */
             chgvar &prompt 0  /* jamais, même si ? */
             chgvar &syntax 0  /* syntaxe OS/400  */
             chgvar &ccsid 1200/* UTF-16 */
             CALL       PGM(QCAPCMD) PARM(&CMD &CMDLEN &OPTBLOCK +
                          &OPTLEN 'CPOP0100' &CMDRT &CMDRTLEN +
                          &RTLEN &ERRCODE) ENDPGM





©AF400