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

z/OS Discussion :

Passage de PIC X vers COMP-3


Sujet :

z/OS

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Points : 16
    Points
    16
    Par défaut Passage de PIC X vers COMP-3
    Bonjour,

    J'ai une Variable dans un fichier en entrée de mon batch en PIX X(17)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "-0000000000256.35" ou 
    " 0000000000256.35"
    par exemple et j'aimerais la transformer en S9(13)V99.

    Cdt,

  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
    Ce post a été édité pour rectification erreurs

    Citation Envoyé par mirc00 Voir le message
    Bonjour,

    J'ai une Variable dans un fichier en entrée de mon batch en PIX X(17)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "-0000000000256.35" ou 
    " 0000000000256.35"
    par exemple et j'aimerais la transformer en S9(13)V99.

    Cdt,
    Bonjour.

    Est ce que ces nombres sont dans le fichier en entrée tels que tu les donnes ou ça c'est l'affichage d'un display ?

    S'ils sont réellement dans le fichier tels que tu les donnes :
    - si tu as la fonction NUMVAL utilise la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        03 Z1 PIC X(17).
    ....
    01 Z2 PIC S9(13)V99.
    ....
    MOVE FUNCTION NUMVAL(Z1) TO Z2.
    - sinon redéfinis ta zone x(17) comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        03 Z1 PIC X(17).
        03 Z11 REDEFINES Z1.
            05 Z1-S    PIC X.
            05 Z1-E    PIC 9(13)
            05 Z1-V    PIC X.
            05 Z1-D    PIC 99.
    ....   
    01  Z2 PIC S9(13)V99.
    ....
         COMPUTE  Z2 = Z1-E + Z1-D / 100.
         IF Z1-S = "-" MULTIPLY -1 BY Z2.
    ou encore mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        03 Z1 PIC X(17).
        03 Z11 REDEFINES Z1.
            05 Z1-E    PIC S9(13) SIGN IS LEADING SEPARATE CHARACTER.
            05 Z1-V    PIC X.
            05 Z1-D    PIC V99.
       
    01  Z2 PIC S9(13)V99.
               if Z1-E NEGATIVE
                  Subtract Z1-D from Z1-E giving Z2
               else Add Z1-E Z1-D giving Z2.
    Z2 peut être déclarée en comp-3.

    PS : Cette discussion sera éventuellement déplacée dans le forum Cobol.

  3. #3
    Membre chevronné Avatar de bernard59139
    Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2006
    Messages : 950
    Points : 2 064
    Points
    2 064
    Par défaut
    Bonjour

    Si tu ne peux pas modifier le programme (ou en écrire un autre), tu peux utiliser DFSORT.
    les mots clef à retenir, c'est SFF (Signed Free Form) et PD

    la sysin du tri devrait ressembler à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    OUTFIL OUTREC=(1,50,
               51,10,SFF,TO=PD,LENGTH=4,
               61,20)
    La lecture des trucs est recommandée

Discussions similaires

  1. Passage de PIC X vers COMP-4
    Par walacouper dans le forum z/OS
    Réponses: 1
    Dernier message: 09/02/2010, 19h07
  2. [débutant]Passage GUI de Swing vers SWT
    Par Méta dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 04/05/2006, 13h29
  3. Réponses: 2
    Dernier message: 24/03/2005, 10h20
  4. Réponses: 2
    Dernier message: 17/02/2005, 13h48
  5. Passage du type integer vers varchar sur clé primaire
    Par GMI dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/01/2005, 09h09

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