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 :

[z/OS] Cadrage à gauche d'un numérique édité


Sujet :

Cobol

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [z/OS] Cadrage à gauche d'un numérique édité
    Bonjour à tous.

    J'ai un problème de conversion COBOL. J'espère que quelqu'un pourrait me donner une solution simple parce que j'ai tout essayé et je ne voudrais pas passer par un INSPECT.


    J'ai une variable de travaille : WS-VTOTEN01-CLMAG PIC 9(7)V9(3)
    que je met ensuite dans WS-VTOTEN01-CLMAG-Z PIC ZZZZZZ9,999.
    Le problème c'est qu'il me cadre à droite.

    ex: WS-VTOTEN01-CLMAG -> 0000025321
    WS-VTOTEN01-CLMAG-Z -> bbbbb25,321

    Je veux faire un move dans un CHAR(11) en cadrant à gauche pour me permetre de faire après un DELIMITED BY SIZE.


    Merci d'avance.
    Manu.

  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.

    Tu veux bien nous préciser ta plateforme et ton compilateur comme indiqué dans cette discussion : Règle Tag [SystèmeExploitation-VersionCompilateur]

    Que le cadrage du champ en numérique édité soit fait à droite, c'est tout à fait normal.

    Si tu as les fonctions TRIM/TRIML tu peux les utiliser pour supprimer les espaces ou tout autre caractère au début ou à la chaine de caractères. Sinon il te restera le INSPECT ou une petite boucle perform en redéfinissant la chaine source et la chaine cible en tableaux ou utiliser le reference modifier

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Hédhili Jaïdane Voir le message
    Bonjour.

    Tu veux bien nous préciser ta plateforme et ton compilateur comme indiqué dans cette discussion : Règle Tag [SystèmeExploitation-VersionCompilateur]

    Que le cadrage du champ en numérique édité soit fait à droite, c'est tout à fait normal.

    Si tu as les fonctions TRIM/TRIML tu peux les utiliser pour supprimer les espaces ou tout autre caractère au début ou à la chaine de caractères. Sinon il te restera le INSPECT ou une petite boucle perform en redéfinissant la chaine source et la chaine cible en tableaux ou utiliser le reference modifier
    C'est z/OS (Mainframe). Donc il ne me reste que la soluction du INSPECT, si je comprend bien ? Comme j'ai ce problême avec 100 variables j'éspèrai pour trouver une autre solution.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Regarde ici un exemple d'utilisation de la fonction REVERSE. C'est facilement adaptable à ton cas.

  5. #5
    Membre éclairé Avatar de Peut-êtreUneRéponse
    Homme Profil pro
    IT Specialist - IBM Z
    Inscrit en
    Décembre 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : IT Specialist - IBM Z
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 548
    Points : 801
    Points
    801
    Par défaut
    @Mercure : Merci pour le lien

    @Manbra : Sinon avec un INSPECT sans fonction REVERSE tu peux faire quelque chose qui ressemble à ça :


    Code cobol : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     WORKING-STORAGE SECTION.
     
     01 NB-SPACE             PIC S9(4) COMP.
     01 LG-EFFECTIV          PIC S9(4) COMP.
     01 WS-VTOTEN01-CLMAG    PIC 9(7)V9(3).
     01 WS-VTOTEN01-CLMAG-Z  PIC ZZZZZZ9,999.
     01 WS-JUSTIFIE          PIC X(11)
    
     PROCEDURE DIVISION.
    
    * Décompte du nombre d'espace de la zone à cadrer dans compteur NB-SPACE
         INSPECT WS-VTOTEN01-CLMAG-Z TALLYING NB-SPACE                
                                     FOR ALL SPACES.      
                                                  
    * Calcul de la longueur effective de la zone à cadrer
         SUBTRACT NB-SPACE FROM LENGTH OF WS-VTOTEN01-CLMAG-Z GIVING LG-EFFECTIV.
         
    * Transformation du nbre d'espace en position pour MOVE positionnel 
         ADD 1 TO NB-SPACE GIVING NB-SPACE.                            
         
    * MOVE positionnel de la zone à cadrer dans la zone finale justifiée à gauche WS-JUSTIFIE
         MOVE WS-VTOTEN01-CLMAG-Z(NB-SPACE:LG-EFFECTIV) TO WS-JUSTIFIE.
         
    * Vérification
         DISPLAY 'PIC 9(7)V9(3)    : *'  WS-VTOTEN01-CLMAG   '*'.
         DISPLAY 'PIC ZZZZZZ9,999  : *'  WS-VTOTEN01-CLMAG-Z '*'.
         DISPLAY 'JUSTIFIE         : *'  WS-JUSTIFIE         '*'.
         DISPLAY 'POSITION         : '  NB-SPACE.     
         DISPLAY 'LONG EFFECTIVE   : '  LG-EFFECTIV
    .

    Résultat :

    Code SYSOUT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ********************************* TOP OF DATA ********
    PIC 9(7)V9(3)    : *0000099230*                              
    PIC ZZZZZZ9,999  : *     99,230*                             
    JUSTIFIE         : *99,230     *                             
    POSITION         : 0006
    LONG EFFECTIVE   : 0006                                    
    ******************************** BOTTOM OF DATA ******

    .

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    @Manbra,

    Alors, qu'as-tu fait en final ?

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Decimal point is comma
    L'option "Decimal point is comma" devrait remédier à ce problême.

    Indique via le compilateur que la virgule flottante "V" du format numérique doit se caler sur le caractère "," de la zone d'édition.

    A placer dans les premieres options déclaratives du Programme/Module, je ne sais plus trop ou mais genre Identification Division ou pas loin

  8. #8
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 49
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    Merci Peut-êtreUneRéponse pour ta réponse, j'avais un problème similaire et ta solution est exactement ce que je recherchais.

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

Discussions similaires

  1. Cadrage à gauche non fonctionnel
    Par Zebulon777 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 29/10/2014, 11h26
  2. Réponses: 3
    Dernier message: 25/04/2013, 22h38
  3. Cadrage (numérique) à droite dans un élément <INPUT>
    Par Trebor_ dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 12/02/2008, 16h41
  4. export d'une cellule numérique avec 0 de gauche
    Par pilpoil dans le forum Excel
    Réponses: 5
    Dernier message: 24/08/2007, 08h05
  5. Réponses: 3
    Dernier message: 06/09/2006, 12h02

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