Accueil du site > Les articles > Utiliser les tables de conversions
Version à imprimer Enregistrer au format PDF

Utiliser les tables de conversions

jeudi 29 juillet 2010, par Serge Gomes Visites  1473 |Popularité : 51% 

Nous allons voir comment créer une table de conversion, et comment l’utiliser par le biais d’un fichier logique. Une table de conversion est un objet de type « *TBL ». Chaque position de la table représente la valeur « hexa » d’un caractère.

Pour créer une table de conversion, il faut créer un fichier source (type « TXT »), les valeurs vont de 00 à FF (une ligne va de 00 à 1F).

  
000102030405060708090A0B0C400E0F101112131440161718191A1B1C1D1E1F
202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F
404082824482828248954A4B4C4D4E4F505152855489898989825A5B5C5D5E5F
6061C1C1C1C1C1C1C3D5A46B6C6D6E6F40C5C5C5C5C9C9C9C9797A7B7C7D7E7F
408182838485868788898A8B40A84040909192939495969798994040409D4040
A0A1A2A3A4A5A6A7A8A94F6FC4E8404040B1404040B5404040404040BCBDBEBF
C0C1C2C3C4C5C6C7C8C940CB96969696D0D1D2D3D4D5D6D7D8D940A4A46DA4A8
E0E1E2E3E4E5E6E7E8E940D6D6D6D6D6F0F1F2F3F4F5F6F7F8F940E4E4E4E440

Ensuite il faut créer la table

  
CRTTBL TBL(Q297)         
       SRCFILE(QDDSSRC)  
       SRCMBR(Q297)      

La table de conversion Q297 est créée.

Création du fichier FCHRCV, ce fichier ne contient qu’un seule zone

  
     A          R FCHRCVTF                     
     A            DONNEE     10000             

Création du fichier logique FCHRCV1

  
     A          R FCHRCVTF                  PFILE(CHRCVT)                         
     A            DONNEE             I      TRNTBL(*LIBL/Q297)

Le mot clé "TRNTBL" permet d’indiquer la table de conversion utilisée pour convertir les données dans la zone.

Un petit exemple d’utilisation, on souhaite convertir le fichier QTEMP/W_FICHIER

  
            CPYF       FROMFILE(QTEMP/W_FICHIER) +                      
                         TOFILE(CHRCVT) MBROPT(*REPLACE) +        
                         CRTFILE(*NO) FMTOPT(*NOCHK)

CPYF FROMFILE(CHRCVT1) + TOFILE(QTEMP/W_FICHIER) MBROPT(*REPLACE) + CRTFILE(*NO) FMTOPT(*NOCHK)