Cette division (ENVIRONMENT DIVISION) permet de définir le type d’ordinateur pour lequel est écrit le programme, ainsi que les périphériques nécessaires pour supporter les fichiers.
A B
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-AS400.
Ou IBM-PC.
OBJECT-COMPUTER. IBM-AS400.
Ou IBM-PC.
SPECIAL-NAMES. Liste des noms symboliques spéciaux.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
Options
I-O-CONTROL.
Options
Les SPECIAL-NAMES
CURRENCY-SIGN IS caractère : par défaut le $ mais un autre caractère peut être utilisé
DECIMAL-POINT IS COMMA : la Virgule indique la séparation des unités et des décimales.
Nom-réservé IS nom-mnémonique : cette clause s’adresse aux instructions d’entrée-sortie DISPLAY et ACCEPT.
L’INPUT-OUTPUT SECTION
Fait le lien entre les fichiers du programme et les fichiers sur les périphériques (Disque, bande, imprimante). C’est ici qu’on indique si le fichier est séquentiel ou en accès direct.
En FILE-CONTROL, on établit le lien entre chacun des noms de fichiers désignés dans la DATA DIVISION et les noms de fichiers externes.
Forme générale
A B
FILE-CONTROL.
SELECT FOURNISSEUR ASSIGN TO ……….
FOURNISSEUR est le nom indiqué en FILE SECTION dans la clause FD Nom-de-fichier
Les options
FILE-CONTROL.
SELECT [optional] nom-du-fichier assign to ……
ORGANIZATION IS ………
ACCES MODE IS………….
Clause KEY…
FILE STATUS IS ………..
1. ORGANIZATION IS LINE SEQUENTIAL
SEQUENTIAL
INDEXED
RELATIVE
2. ACCESS MODE IS SEQUENTIAL
RANDOM
DYNAMIC
3. KEY
RELATIVE KEY IS nom-de-donnée
RECORD KEY IS nom-de-donnée1
ALTERNATE RECORD KEY IS nom-de-donnée2
[WITH DUPLICATES]
4. FILE-STATUS IS SKF1
Remarques
Au niveau de l’organisation :
Line–sequential pour les fichiers crées par l’EDITEUR.
Relative pour les fichiers à accès directe au moyen d’une clé numérique qui indique la position de l’enregistrement dans le fichier.
Indexed, les enregistrements sont les uns derrières les autres et les clés d’accès se trouvent dans un second fichier.
Au niveau de l’accès :
Sequential le fichier sera lu enregistrement par enregistrement du début à la fin.
Random le fichier est lu directement au moyen d’une clé, l’enregistrement recherché est donné Immédiatement.
Dynamic le fichier peut être lu comme le sequential ou comme le random durant toute la durée du programme.
Au niveau des clés :
La définition de clés n’est valable que pour les fichiers NON séquentiels.
Le FILE-STATUS permet de récupérer sous forme de code numérique le résultat de l’opération effectuée sur ce fichier. Pour cela, l’option doit être indiqué.
Utilisation d’un fichier de type texte
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT OPTIONAL fdisk1
ASSIGN TO disk "c:\temp\monfichier.txt"
Organization is Line Sequential
FILE STATUS IS status-variable.
*
Select impr assign to print "-p spooler".
***********************************************
DATA DIVISION.
FILE SECTION.
FD fdisk1.
01 maligne pic x(80).
*** si vous ne pouvez pas indiquer directement le nom du fichier vous pouvez utiliser cette méthode
FD fdisk1 VALUE OF FILE-ID LENOM_DE_MONFICHIER.
01 maligne pic x(80).
FD Impr.
01 ligne pic x(80).
01 LENOM_DE_MONFICHIER PIC X(100).
Pour un fichier de données
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT optional FOUT
ASSIGN TO "c:\temp\fout.dta"
FILE STATUS is sk.
**********************************************
DATA DIVISION.
FILE SECTION.
FD Fout.
01 EOUT pic x(20).