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 variable PIC X -> PIC 9


Sujet :

Cobol

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 193
    Par défaut Conversion variable PIC X -> PIC 9
    Bonjour à tous,

    je cherche à savoir comment on fait pour convertir le contenu d'une variable 'pic x(15)' (son contenu est un nombre mais impossible de le manipuler en tant que tel !!!) en contenu numérique avec possibilité de faire des opérations avec ??

    Merci

  2. #2
    HRS
    HRS est déconnecté
    Membre chevronné
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    01  VARX  PIC X(15).
    01  VAR9 PIC 9(15) REDEFINES VARX.
    
    
    IF VARX NUMERIC
       ADD VAR9 TO .....

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 193
    Par défaut
    merci ...
    ca ne marche pas mon compilateur m envoi baladé ....

    message a la compile:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1544 01 W-PSUM         PIC 9(12)V99 REDEFINES I-PSUM.
    * 204-S***********************************************                 (   0)**
    **    REDEFINES on incorrect field
    declaration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    01  INCO.   
               05 I-NUMBER        PIC X(10).
               05 I-DATE          PIC X(10).    
               05 I-PAY-KIND      PIC X(35).
               05 I-PSUM          PIC X(15).
    
    puis:
    
    01 W-PSUM         PIC 9(12)V99 REDEFINES I-PSUM.
    correcte ou bien ??
    merci

  4. #4
    HRS
    HRS est déconnecté
    Membre chevronné
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Par défaut
    il faut redefinir à niveau égal et longueur égale (le V est virtuel)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    01  INCO.   
               05 I-NUMBER        PIC X(10).
               05 I-DATE          PIC X(10).    
               05 I-PAY-KIND      PIC X(35).
               05 I-PSUM          PIC X(15).
               05 W-PSUM          PIC 9(13)V99 REDEFINES I-PSUM.

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 193
    Par défaut
    OK merci la compile passe ... cool!
    par contre je fais la chose suivante dans mon code ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    IF I-PSUM NOT NUMERIC
                  MOVE ZERO TO CTL-DATA
                  MOVE 'AMOUNT MUST BE NUMERIC' TO W-64441E
                  MOVE ZERO TO W-64250
               ELSE
                  COMPUTE I-PSUM = I-PSUM * 100
                  MOVE I-PSUM  TO W-64250
               END-IF.
    et la compile ne passe pas la dessus ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Compiling K1PZS1.cbl
      1885        COMPUTE I-PSUM = I-PSUM * 100
    *  34-S*********************                                           (   0)**
    **    Operand I-PSUM should be numeric
    j en peux plus de l informatique help !!!!

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

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Par défaut
    Citation Envoyé par nenekes
    ... et la compile ne passe pas la dessus ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Compiling K1PZS1.cbl
      1885        COMPUTE I-PSUM = I-PSUM * 100
    *  34-S*********************                                           (   0)**
    **    Operand I-PSUM should be numeric
    Il faut utiliser la variable redéfinie soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COMPUTE W-PSUM = W-PSUM * 100

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

Discussions similaires

  1. Conversion variable de type long en Date
    Par cedric774 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 08/11/2011, 23h49
  2. [z/OS] ADD PIC X TO PIC S9 COMP ?
    Par Jean_Peuplus dans le forum Cobol
    Réponses: 2
    Dernier message: 08/12/2009, 10h28
  3. conversion variable string en nombre à 3 DEC
    Par karim19 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 27/10/2009, 14h29
  4. Problème PIC d'éditions PIC X -> PIC 9
    Par Hanakimi dans le forum Cobol
    Réponses: 6
    Dernier message: 30/03/2009, 15h35
  5. Conversion variable texte en array
    Par t-too dans le forum MATLAB
    Réponses: 1
    Dernier message: 11/07/2007, 09h07

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