Apprendre COBOL – Tutorial pour apprendre le COBOL

apprendre cobol

Apprendre COBOL, ce tutorial présente les concepts généraux liés à la structure d’un programme en COBOL.

Apprendre COBOL – Introduction

Cette article fait suite à mon introduction au langage COBOL. Je vous conseille de relire la première partie qui traite des principes généraux de COBOL. Ici : https://128mots.com/index.php/2020/10/07/ibm-cobol/ et en anglais https://128mots.com/index.php/en/2020/10/07/ibm-cobol-3/

Nous traitons ici les concepts généraux liés à la structure d’un programme en COBOL.

DATA DIVISION

Toutes les données qui vont être utilisées par le programme sont situées dans la Data Division . C’est l’endroit où toutes les allocations de mémoire requises par le programme sont prises en charge. Cette division est facultative.

GESTION DES FICHIERS :

apprendre cobol

La FILE SECTION décrit les données envoyées ou provenant du système, en particulier les fichiers.

Lorsqu’on apprend COBOL la syntaxe est trèc importante. La syntaxe en COBOL est la suivante

DATA DIVISION.
FILE SECTION.
 FD/SD NameOfFile 
	[RECORD CONTAINS intgr CHARACTERS] 
	[BLOCK CONTAINS intgr RECORDS]
	[DATA RECORD IS NameOfRecord].
	[RECORDING MODE IS {F/V/U/S}]

FD décrit les fichiers et SD les fichiers de tri.

FICHIER EN ENTRÉE

En FILE-CONTROL la déclaration sera :

           SELECT FMASTER      ASSIGN FMASTER
                  FILE STATUS  W-STATUS-FMASTER.

Si le fichier d'entrée est indexée:
           SELECT FMASTER      ASSIGN FMASTER
                  ORGANIZATION IS INDEXED
                  RECORD KEY   IS FMASTER-KEY
                  FILE STATUS  W-STATUS-FMASTER..

Dans ce cas au niveau de la FILE-SECTION on va avoir :

      *    FMAITRE en entrée  
       FD  FMAITRE.
       01  ENR-FMAITRE.
      *    Déclarations des zones de l’enregistrement

Au niveau JCL la déclaration sera de la forme :
//ENTREE    DD DSN=SAMPLE.INPUTF,DISP=SHR
IBM COBOL TRAINING FREE apprendre cobol

FICHIER EN SORTIE

La déclaration JCL sera alors :

//OUTFILE   DD DSN=SAMPLE.OUTPUTF,DISP=(,CATLG,DELETE),
//       LRECL=150,RECFM=FB

RECFM spécifie les caractéristiques des enregistrements avec longueur fixe (F), longueur variable (V), longueur variable ASCII (D) ou longueur indéfinie (U). Les enregistrements qui sont dit bloqués sont décrits comme FB, VB ou DB.

OUVERTURE ET FERMETURE FICHIER EN PROCEDURE DIVISION

COBOL utilise des mécanismes en PROCEDURE DIVISION pour effectuer des lecture écriture, fermeture et ouverture de fichier.

Ouverture de fichier d’entrée :

OPEN  INPUT               FICENT

Ouverture de fichier de sortie :

OPEN OUTPUT          FICSOR

Fermeture de fichier :

CLOSE FICENT
CLOSE FICSOR

Lecture de fichier:

READ ACTENR
AT END MOVE 'O' TO DERNIER-ENREGISTREMENT
END-READ

Ecriture fichier

WRITE SOR-ENR
IBM COBOL TRAINING FREE apprendre cobol

Apprendre COBOL – LIENS EXTERNES VERS DES RESSOURCES

Ci-dessous quelques liens que j’ai trouvé intéressants qui traitent également de la gestion des fichiers avec COBOL.

Exemple de gestion de fichier du site IBM : https://www.ibm.com/support/knowledgecenter/en/SS6SGM_5.1.0/com.ibm.cobol51.aix.doc/PGandLR/ref/rpfio13e.html

REFM Format : https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.2.0/com.ibm.zos.v2r2.idad400/d4037.htm

Tutorialspoint un article sur la gestion fichier https://www.tutorialspoint.com/cobol/cobol_file_handling.htm

COURSERA COBOL with VSCODE : https://www.coursera.org/lecture/cobol-programming-vscode/file-handling-YVlcf

MEDIUM un article intéressant pour les débutants COBOL : https://medium.com/@yvanscher/7-cobol-examples-with-explanations-ae1784b4d576

Egalement sur son blog : http://yvanscher.com/2018-08-01_7-cobol-examples-with-explanations–ae1784b4d576.html

Beaucoup d’exemple COBOL de tutoriaux et sample code gratuits : http://www.csis.ul.ie/cobol/examples/default.htm

GITHUB Awesome-cobol vous https://github.com/mickaelandrieu/awesome-cobol

Apprendre COBOL – LIENS INTERNES

IBM COBOL FREE TRAINING

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *