IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Cobol Discussion :

Conversion COMP-3 en lisible dans un autre fichier


Sujet :

Cobol

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Août 2011
    Messages : 5
    Points : 10
    Points
    10
    Par défaut Conversion COMP-3 en lisible dans un autre fichier
    bonjour,

    je souhaiterai convertir le champ d'un fichier en PIC(09) COMP-3 dans un autre fichier et ainsi rendre valeur lisible.

    Pour cela, j'ai essayé d'utiliser un SORT dans mon JCL de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //CONVT3   EXEC PGM=SORT                                                
    //* --------------------------------------------------------------      
    //SORTIN   DD DISP=SHR,DSN=FICHIER.OLD         
    //SORTOUT  DD  DSN=FICHIER.NEW,                
    //             DISP=(,CATLG,DELETE),                                    
    //             MGMTCLAS=ND0010,                                         
    //             SPACE=(CYL,(01,01),RLSE)                                                           
    //SYSPRINT DD  SYSOUT=*                                                 
    //SYSOUT   DD  SYSOUT=*                                                 
    //SYSIN    DD  *                                                        
     SORT FIELDS=COPY                                                       
     OUTREC FIELDS=(3,5,PD,EDIT=(IIIIIIIIT))

    Voila la structure de mon fichier en entrée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    **---------------------------------------                         
    **   CDENR = 04  ENREGISTREMENT DETAIL                            
    **---------------------------------------                         
     01  FAC-DETAIL-04(X).                                         
    *    CODE ENREGISTREMENT                                          
         05  FAC-DETAIL-CDENR(X)              PIC 9(002).          
    *    DETAIL VARIABLE                                              
         05  FAC-DETAIL-VARIABLE(X).                               
    *        IDENTIFIANT                           
             10  FAC-DETAIL-IDCNMP(X)         PIC 9(009) COMP-3.   
             10  FILLER                                PIC X(002).
    Malheureusement, j'ai une erreur. je ne trouve pas d'explications sur le web :
    ICE251A 2 MISSING RDW OR DATA FOR *OUTREC : REASON CODE 04, IFTHEN 0

    Est ce que quelqu un aurait une idée de la raison de mon erreur, ou une autre solution pou reffectuer cette tache ?

    Merci d'avance

    Mario

  2. #2
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Bonjour.

    Je ne peux pas te répondre sur l'erreur ou sur la faisabilité par SORT sur les main, mais moi je ferais un petit programme Cobol avec un simple MOVE élémentaire de la zone en comp-3 vers la zone en étendu. Le MOVE d'une structure (groupe) contenant la zone packée empêchera sa conversion.

  3. #3
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 283
    Points
    3 283
    Par défaut
    Ton fichier d'entrée est fixe ou variable ?

    Je pense que la problème est autour de cela ...

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Août 2011
    Messages : 5
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Merci pour vos réponses,

    Mon fichier en entrée est variable.

    Record format . . . : VB
    Record length . . . : 304

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Août 2011
    Messages : 5
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par Luc Orient Voir le message
    Ton fichier d'entrée est fixe ou variable ?

    Je pense que la problème est autour de cela ...
    OK, tu m'as mis sur la voie

    Voila ce que j'ai trouvé :

    Cas des fichiers en VARIABLE BLOQUE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OUTREC FIELDS=(1,4,5,2,C'0000',11)
    - Si le fichier est en VARIABLE BLOQUE, il faut rajouter '1,4' au début du tri (les 4 premiers étant destinés à indiquer la taille de l'enregistrement).
    - Ici, en sortie, on aura : le cinquième (premier) caractère sur 2 positions, puis on rajoute '0000' et on prend à partir du onzième (septième) caractère jusqu'à la fin de l'enregistrement.

    Ce qui donne au niveau de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     SORT FIELDS=COPY                                   
     OUTREC FIELDS=(1,4,5,2,7,5,PD,EDIT=(IIIIIIIIT),12)
    Merci beaucoup pour vos remarques.

    Pb Résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion alphanumérique en numérique
    Par yahnou dans le forum SAS Base
    Réponses: 9
    Dernier message: 01/05/2009, 23h02
  2. Réponses: 3
    Dernier message: 10/10/2008, 15h04
  3. Pb de conversion texte en numérique.
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/11/2007, 16h57
  4. Conversion d'un numérique en varchar
    Par Goldorak2 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 31/05/2006, 12h33
  5. conversion une chaine numérique en lettre
    Par nazimb dans le forum ASP
    Réponses: 1
    Dernier message: 20/11/2005, 17h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo