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 :

[PC-Fujitsu Cobol] Comment faire un fichier de données ?


Sujet :

Cobol

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1
    Points : 2
    Points
    2
    Par défaut [PC-Fujitsu Cobol] Comment faire un fichier de données ?
    Bonjour à tous,
    je viens de télécharger le compilateur Fujitsu Cobol et je n'arrive pas totalement à m'en servir. En particulier j'aimerais faire un fichier de données (code, nom, prénom, adresse, code postal, ...) mais je ne vois pas du tout comment faire. J'ai réussi à exécuter un programme tout simple qui additionne deux nombres mais là je n'arrive pas à faire mon fichier de données (celui qui est appelé dans la input-output section.
    Merci pour votre aide.

  2. #2
    Christianchristian
    Invité(e)
    Par défaut
    Bonjour,

    Je n'ai pas d'environnement COBOL sur mon ordinateur, je ne vais par conséquent, pas pouvoir te répondre précisément.

    Voici une trame de ce qu'il faut faire pour mettre en ligne un fichier séquentiel en output (en sortie si j'ai bien compris ton message).
    Ce qui est en caractère gras se rapporte au fichier.

    nom-interne : nom sous lequel tu "manipules" ton fichier dans le programme.
    nom-externe : nom réel du fichier, (ou lien avec ce nom réel) alors là par contre, je ne sais pas comment cela se traite dans ton environnement ni dans l'environnement micro en général d'ailleurs. Peut-être faut-il l'écrire entre quotes ??? Je crois avoir vu ça quelque part.
    J'ai laissé quelques numéros de lignes cobol, ils n'ont ici aucune signification particulière.


    Code : 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    000010 identification           division.
    000020 program-id. xxxxxxxxxx.
    000030 author. xxxxxxxxxxxxxx.
    000040 environment division.
    000050 configuration section.
    000060 source-computer. xxxxxxxxx.
    000070 object-computer. xxxxxxxxxx.
    000075 special-names. xxxxxxxxxxx.
    
    000080 input-output section.
    000090 file-control.
    000100 select nom-interne assign   "nom-externe"
    000110 organization sequential
    000120 access is sequential
    .........   file status is file-stat.
    
    
    000140 data division.
    000150 file section.
    000160 fd nom-interne record contains nn characters.
    000170 01 enr-out.
    000180 02 enr-code pic x(??).  
    000190 02 enr-nom  pic x(??).  
    000200 02 enr-prenom pic 9(??).
    00....... 02 enr-adre...............
    tu poursuis la description de ton enregistrement. Fais attention, la somme des pictures (??) doit être = nn
    
    000210 working-storage section.
    .........................
    ......01   file-stat pic xx.
    si tu utilises pour l'écriture de chaque enregistrement une zone groupée décrite en working-storage section. 
    ......01   work-..nom-de-la-zone-groupée-décrite-en-working
    ............02 work-code pic x(??).  
    ............02 work-nom  pic x(??).  
    ............02 work-prenom pic 9(??).
    ........... 02 work-adre.....................................
    000370 procedure division.
    ....................  initialisations variables .....
    
    ........  open output nom-interne .
    ici tu dois tester le FS (File Status)
    ...........if file-stat is not = zero .....perform gestion erreur open...
    
    A ce niveau prévoir une itération afin d'intégrer les données en entrée qui constitueront les enregistrements du fichier 
    ......... perform format-enr-out thru fin-format-enr-out. 
    ......... Perform ecriture-enr-out thru fin-ecriture-enr-out. 
    Fin de l'itération
    
    .......   close nom-interne .
    ici tu dois tester le FS (File Status)
    ...........if file-stat is not = zero .....perform gestion erreur close...
    
    .......... stop run.
    
    Dans ce qui suit pour davantage de clarté, on travaille directement sur les
    variables fichier décrites en buffer "fd". Si tu décides de travailler sur
    l'équivalent de ces zones décrites en working-storage section (ce qui est préférable**)
    il faudra programmer un WRITE enr_out FROM nom-de-la-zone-groupée-décrite-en-working.
    Après bien sûr avoir renseigné les zones élémentaires de cette zone groupée décrite en working.
    **NB après un WRITE les données (les variables) du buffer "fd" de 
    l'enregistrement écrit ne sont plus disponibles pour le programme 
    
    .....format-enr-out. 
    ...........move xxx-code to enr-code.
    .......... move xxx-nom to enr-nom. 
    ...........move xxx-prenom to enr-prenom.
    .......... move xxx-adr... to enr-adre... 
    
    OU BIEN, si tu utilises une zone groupée décrite en working-storage section. 
    ...........move xxx-code to work-code.
    .......... move xxx-nom to work-nom. 
    ...........move xxx-prenom to work-prenom.
    .......... move xxx-adr... to work-adre... 
    
    .....fin-format-enr-out.
    ...........exit.. 
    
    ......ecriture-enr-out.
    ....... write enr-out. 
    
    OU BIEN, si tu utilises une zone groupée décrite en working-storage section. 
    ....... write enr-out from work-...nom-de-la-zone-groupée-décrite-en-working.
     
    ici tu dois tester dans les 2 cas le FS (File Status)
    ...........if file-stat is not = zero .....perform gestion erreur write...
    
    .......fin-ecriture-enr-out.
    ...........exit.
    ........fin-pgm.

    Cordialement,
    Dernière modification par Christianchristian ; 26/06/2006 à 18h15.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Tapes open cobol en recherche google, puis selectionnes
    cobol notes de cours fichiers indexés, tu trouveras des explications simples
    mais completes.
    Bonne contunuation.

    Citation Envoyé par julieb01
    Bonjour à tous,
    je viens de télécharger le compilateur Fujitsu Cobol et je n'arrive pas totalement à m'en servir. En particulier j'aimerais faire un fichier de données (code, nom, prénom, adresse, code postal, ...) mais je ne vois pas du tout comment faire. J'ai réussi à exécuter un programme tout simple qui additionne deux nombres mais là je n'arrive pas à faire mon fichier de données (celui qui est appelé dans la input-output section.
    Merci pour votre aide.

  4. #4
    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
    Citation Envoyé par fredfrd
    Tapes open cobol en recherche google, puis selectionnes
    cobol notes de cours fichiers indexés, tu trouveras des explications simples
    mais completes.
    Bonne contunuation.
    Je pense qu'il s'agit d'un fichier séquentiel pas d'un fichier indexé qui n'existe d'ailleurs pas en COBOL ...

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Sauf erreur de ma part la méthode d'accès VSAM (gérée par COBOL) est justement une méthode permettant de créer et gérer des fichiers Indexés (et relatifs).

    Mais je me permet de relancer un peu le sujet, parce que j'avoue moi même coincer sur ce point avec fijutsu qui assez particulier à manipuler. et la doc dont je dispose ne m' a pas beaucoup aidé jusque là.

    Merci d'avance pour votre aide

  6. #6
    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
    Citation Envoyé par mefhisto
    Sauf erreur de ma part la méthode d'accès VSAM (gérée par COBOL) est justement une méthode permettant de créer et gérer des fichiers Indexés (et relatifs).
    VSAM est une méthode d'accès propre à IBM sur le système d'explotation z/OS et, bien sûr, gérée par le compilateur COBOL présent sur cet environnement.

  7. #7
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Tout d'abord, merci Luc pour la précision.

    Ensuite en ce qui concerne Fijutsu COBOL et la création de donnée, la méthode de christian fonctionne parfaitement, si tu veux simplement créer le fichier vide dans la procédure, lance simplement l'ouverture et la fermeture du fichier qui n'existe pas encore et il sera créer (tout aussi valable pour la création de fichier indexés).

    Sinon tu as une autre méthode qui te permet de créer des fichiers déjà remplis (avec par exemple des données récupérées dans un tableur). Pour cela créé un fichier texte (si tu ne veux pas te casser la tête à indiquer le path entier dans le code, mets le dans le même dossier que ton futur programme) ensuite remplis-le et sauvegarde-le. Tu as donc ton fichier de données (correctement indenté tant qu'à faire) au format txt.

    Ouvre alors le "programming staff" de Fijutsu va tout de suite dans tools (barre de menu) choisi l'outils (dont je ne me souviens pas le nom) pour lequel tu as, entre parenthèse, "File Utility".

    Ensuite dans la barre des menus de la nouvelle fenêtre, trouve l'option "Convert..." (et là je suis sincèrement désolé, je n'ai pas le compilateur sous les yeux et je ne me souviens du nom du menu, mais ça se trouve facilement).

    Indique le fichier que tu viens de créer en entrée et en sortie j'indique en général un autre nom, je laisse l'extension txt (peu importe), laisse les options comme elles sont et clique sur "OK". Si tu n'as pas rencontré de problème, tu as maintenant un fichier séquentiel exploitable dans ton code.

    Je n'ai pas encore testé la création de VSAM avec cette dernière méthode, par contre, une fois encore, avec la méthode de Christian, aucun soucis (évidemment on a alors "ORGANIZATION IS INDEXED" et tout ce qui en découle RECORD KEY, ALTERNATE RECORD KEY, etc.

    J'espère avoir apporté ma petite pierre à l'édifice, à très bientôt.
    Mefh

  8. #8
    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 description fich
    VOICI un ex concret avec plusieurs types de fichiers
    Code : 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    * FAGD.COB 2001 description fichiers AGENDAS + EVTs *** 
         SELECT   FCHA  ASSIGN    DISK
            ORGANIZATION  INDEXED
            ACCESS   IS   DYNAMIC
            RECORD   KEY  CHCHA
            FILE  STATUS   ST-CHAM.
         SELECT   FJOU  ASSIGN    DISK
            ORGANIZATION  LINE SEQUENTIAL
            FILE STATUS   ST-JOU.
         SELECT   FAGD  ASSIGN   DISK
            ORGANIZATION  INDEXED
            ACCESS   IS   DYNAMIC     
            RECORD   KEY   CHDGD
             FILE STATUS ST-AGD.
         SELECT   FEVT  ASSIGN    DISK
            ORGANIZATION  INDEXED
            ACCESS   IS   DYNAMIC     
            RECORD   KEY   CLEVT
             FILE STATUS ST-EVT.
     DATA DIVISION.
     FILE SECTION.
    *****---------   championnat (278 car.)--------------***
     FD   FCHA  EXTERNAL GLOBAL  LABEL  RECORD  STANDARD.
     01     AFCHA.
       03     CHCHA    PIC  XX.
       03     CHACHA.
         05   CLUCHA   PIC  X(072).
         05   PREMINSCHA  PIC  X.
         05   FILLER   PIC  X(203).
    ****---------     journ‚es (2582 car.) ------------***
     FD   FJOU  EXTERNAL GLOBAL  LABEL  RECORD  STANDARD.
     01     AFJOU.
       02     CHJOU    PIC  XX.
       02     TJOU.
       05     ELTJOU   PIC  X(86)   OCCURS  30.
    ***------------mano equipes scores -(TCHAM.COB)-------***
      02  TABCHA  REDEFINES  TJOU.
       03   FILLER  PIC   X(2580).
      02 TCHAMP  REDEFINES  TJOU.
       03   TJCHA  OCCURS  30.
         05   DJCHA  PIC X(6).
         05   MATCHA.
          06  RENCHA  OCCURS 8.
            07  EQCHA          PIC XXXX.
            07  EQ9CHA REDEFINES EQCHA.
              09   EQRCHA   PIC  99.
              09   EQVCHA   PIC  99.
            07   PNCHA.
               09   PNRCHA      PIC   X.
               09   PNVCHA      PIC   X.
            07  SCCHA.
                09  SCRCHA      PIC XX.
                09  SCVCHA      PIC XX.
    ****---------------------  AGENDA (65 car.) -----------***
     FD   FAGD   EXTERNAL GLOBAL LABEL  RECORD  STANDARD.
     01     AFGD.
      02     CHDGD               PIC  X(8).
      02     CHDRGD   REDEFINES  CHDGD.
       03      CHGD              PIC  XX.
       03     DATGD              PIC  X(6).
      02     NOMJGD              PIC  XXX.
       02     TCHGD.
           05   JOUGD            PIC  99.
           05   BNGD.
             07    BNCHGD        PIC  X(22).
             07    SUIGD         PIC  X(28).
          05  BNGD1 REDEFINES BNGD  PIC  A(50).
      02   EVGD                  PIC  XX.
      02   EVTGD REDEFINES EVGD  PIC  99.
    **** ------------   EVENEMENTIEL (330 car.) ---------- ****
     FD   FEVT  EXTERNAL GLOBAL  LABEL  RECORD  STANDARD.
     01     AFEVT.
      03     CLEVT     PIC  X(4).
       03   CLEVT1  REDEFINES  CLEVT.
          05 CHEVT     PIC  99.
          05 NOEVT     PIC  9(2).
       03   INFOEVT.
       04    MCHEVT    PIC  X(6).
       04    HLRDVEVT.
          05   HRVEVT  PIC  X(5).
          05   LIRVEVT PIC  X(22).
       04    HLMCHEVT.
          05   HMCEVT  PIC  X(5).
          05   LIMCEVT PIC  X(22).
       04    COULEVT   PIC  X(12).
       04    ARBIEVT   PIC  X(20).
       04     OBSEVT   PIC  X(50).
       04     RESEVT   PIC  X.
       04     REAEVT   PIC  X.
       04   RECLAEVT   PIC  X(01).
       04   RESEREVT   PIC  X(01).
       03   TJOUEVT.
         05   ELJOUEVT      OCCURS   22.
          07    NORJEVT     PIC    XXXX.
          07    CODJOEVT.
          09    CODJEVT     PIC    9(6).
          09    NODSEVT     PIC    9(2).
          07    CODJXEVT REDEFINES CODJOEVT PIC X(8).
        05   FILLER         PIC    XXXX.
    salut

    valmi32

  9. #9
    Débutant Avatar de razily
    Inscrit en
    Février 2009
    Messages
    376
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 376
    Points : 154
    Points
    154
    Par défaut
    merci les gars pour vos explications très claires!!
    j'en ai vraiment besoin !!!


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

Discussions similaires

  1. [PC-Fujitsu Cobol] Comment créer un exe ?
    Par cgo dans le forum Cobol
    Réponses: 9
    Dernier message: 18/02/2013, 10h47
  2. comment fair mon fichier executable!
    Par moon5 dans le forum JDeveloper
    Réponses: 1
    Dernier message: 05/09/2007, 18h51
  3. [débutant]Comment faire des fichiers log
    Par smutmutant2003 dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 12/06/2007, 15h39
  4. Réponses: 10
    Dernier message: 06/02/2007, 21h34
  5. Réponses: 6
    Dernier message: 22/08/2006, 15h37

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