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 :

Utiliser des Filler dans les structures avec ACCEPT


Sujet :

Cobol

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Utiliser des Filler dans les structures avec ACCEPT
    Bonjour tout le monde,

    Dans un de mes cours de COBOL, j'ai une remarque qui dit ceci :

    * ATTENTION DANS LES STRUCTURES SI ON A ACCEPT DANS UNE STRUCTURE
    * STRUCTURE EST DIVISEE EN SOUS-STRUCTURES AVEC FILLER,
    * CES FILLER PRENNENT LA PLACE DE CARACTERES INTRODUITS ET
    * DONNENT DES RESULTATS ERRONES.
    Donc par exemple avec cette partie de structure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
           01 CLIENT.
              02 NUM-CLIENT.
          *      03 FILLER PIC X(7)  value "CODE : ".
                 03 CODE-STATISTIQUE PIC X(2).
          *      03 FILLER PIC X(7) VALUE "NUM   : ".
                 03 NUM-ORDRE PIC 9(4).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       *    Si on accepte NUM-CLIENT, on ne peut pas mettre de FILLER
          *    dans sa structure
               ACCEPT NUM-CLIENT.
    ça, ça me semble normal mais :

    DENOMINATION1 se trouve dans cette partie de structure qui contient des filler:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    02 IDENTIFICATION-CLIENT.
                 03 IDENTIFICATION-FACTURE.
                    04 FILLER PIC X(15) VALUE "Denomination :".
                    04 DENOMINATION1 PIC X(30).
                    04 FILLER PIC X(35).
    Est-ce donc qu'à l'intérieur d'une structure que l'on peut accepter des filler avec les ACCEPT, y'a-t'il une règle bien précise ?

    Merci d'avance pour l'aide.

    beegees

  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
    Re.

    L'ACCEPT obeit aux même règles que le MOVE alpha dans alpha.
    Encore une fois cela dépend des compilateurs.
    Si j'ai bien compris, ton premier ACCEPT reçoit des données saisies à partir de l'écran (unité d'entrée par défaut) après avoir écrit sur l'écran :
    CODE^:^==NUM^^ :^====
    le "=" représente le caractère à saisir
    Si ton OS renvoie tout le buffer écran au programme, tu vas tout recevoir et donc ta zone NUM-CLIENT (qui est une structure : peu importe) va contenir :
    CODE^:^12NUM^^ :^3456
    Si par contre, et c'est le cas le plus général, ton OS ne transmet que les caractères saisis, tu vas avoir un problème avec les fillers qui sont des zones à part entière sauf qu'elles n'ont pas de nom. Dans ce cas il faut avoir des structures d'entée et des structures de sortie (on parle aussi de buffers).
    Et puis est ce que c'est en format libre ou avec des écrans formatés, auquel cas on distingue les constantes textes (sortie uniquement) des variables qui peuvent être en entrée, en sortie ou les deux.

    Ton 2è cas est bon, sauf que le filler x(35) est inutile à moins qu'il ne serve pour le DISPLAY/ACCEPT suivant pour résoudre le problème d'alignement sur l'écran.

    Et si tu nous disais quelle compilateur et quel OS tu utilises.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 13
    Points : 16
    Points
    16
    Par défaut accept
    Avec accept, il est préférable de définir une zone de réception toujours de niveau 01 en W-S-S de type alphanum:

    ex : entrée de la date système
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     EN procedure   ACCEPT DATE-SYS FROM DATE 
    
     EN working-s-s     
    
     01     DATE-SYS  PIC X(8) VALUE SPACES.
    
     01     DATESYS REDEFINES DATE-SYS.
    
                03     AA       PIC XX (OU 99).
                03     FILLER  PIC X.
                03     MM      PIC XX.
                03     FILLER  PIC X.
                03     JJ        PIC XX.
    Salut

    valmi32

    :

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

Discussions similaires

  1. Utilisation des collections dans les UserControl
    Par flo67 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/01/2008, 20h34
  2. Utiliser des variables dans les noms d'objet
    Par Torkan dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 15/03/2007, 23h54
  3. utilisation des sessions dans les jsp
    Par casho dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 16/08/2006, 19h45

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