WRITE |
Écrire |
|---|---|
| Cobol | |
Syntaxe
|
WRITE recordname [FROM identifier1] [(BEFORE|AFTER) ADVANCING (identifier2 [LINE]|integer [LINES]|PAGE) |
|
WRITE recordname [FROM identifier1] [; INVALID KEY imperativestatement] |
Paramètres
| Nom | Description |
|---|---|
| recordname | Ce paramètre permet d'indiquer le nom de l'enregistrement logique que vous souhaitez écrire dans un fichier. Il s'agit d'une structure définie dans la FILE SECTION du programme, représentant la forme des données à enregistrer. C'est cet enregistrement qui sera envoyé vers le fichier de sortie. |
| identifier1 | Ce paramètre permet de copier les données de la variable identifier1 vers recordname avant de l'écrire. C'est utile si vous voulez écrire un enregistrement à partir de données déjà présentes dans une autre variable, sans avoir à remplir manuellement chaque champ de recordname. |
| identifier2 | Ce paramètre est utilisé avec ADVANCING pour préciser combien de lignes doivent être sautées. Cela peut être un entier (2 LINES, par exemple) ou une variable (identifier2 LINE) contenant dynamiquement le nombre de lignes à avancer. Cela améliore la lisibilité du fichier généré (ex. : ajout d'interlignes, saut conditionnel). |
| imperativestatement | Ce paramètre permet d'indiquer un bloc d'instructions exécuté lorsque l'écriture échoue, en lien avec INVALID KEY. Cela peut inclure des actions comme l'affichage d'un message d'erreur, une tentative de relance, ou la redirection vers un journal d'erreurs. |
| integer | Ce paramètre est utilisé avec ADVANCING pour préciser combien de lignes doivent être sautées. Cela peut être un entier (2 LINES, par exemple) ou une variable (identifier2 LINE) contenant dynamiquement le nombre de lignes à avancer. Cela améliore la lisibilité du fichier généré (ex. : ajout d'interlignes, saut conditionnel). |
| AFTER | Ce paramètre permet de sauter des lignes après l'écriture. |
| BEFORE | Ce paramètre permet de sauter des lignes avant d'écrire. |
| INVALID KEY | Ce paramètre permet de gérer les erreurs lors de l'écriture dans un fichier avec organisation indexée ou relative. Si une tentative d'écriture échoue (par exemple à cause d'un doublon de clé), le bloc d'instructions spécifié (voir ci-dessous) est exécuté. |
| PAGE | Ce paramètre permet de passer directement à la page suivante dans un fichier de sortie imprimable. C'est utile pour formater des rapports paginés, comme des états financiers ou des listes clients, avec une présentation propre. |
Description
Cette instruction permet d'écrire un enregistrement logique dans la sortie d'un fichier.
Remarques
- L'instruction WRITE permet de structurer la sortie des données vers un fichier logique. Elle est centrale dans les programmes COBOL orientés vers la génération de rapports ou la production de fichiers. L'enregistrement à écrire doit préalablement être défini dans la FILE SECTION avec un format précis.
- L'utilisation de FROM identifier1 offre une souplesse importante dans le remplissage des données. Cela permet d'écrire un enregistrement complet en copiant directement des valeurs depuis une autre variable, ce qui peut réduire le code de préparation des champs dans recordname.
- Les options BEFORE ADVANCING et AFTER ADVANCING permettent de gérer finement le saut de lignes ou de pages. C'est particulièrement utile pour le formatage dans les fichiers de type imprimable. Elles permettent de rendre le rapport lisible, paginé, et aligné selon les besoins métier ou les normes de présentation.
- Les paramètres identifier2, integer, et PAGE permettent un contrôle granulaire sur la présentation verticale. Grâce à eux, on peut facilement créer des rapports avec des interlignes spécifiques, des entêtes sur chaque page, ou des ruptures de sections avec des sauts de page automatiques.
- L'instruction WRITE est aussi adaptée à la gestion d'erreurs grâce à la clause INVALID KEY. En cas d'échec lors de l'écriture - souvent dans des fichiers indexés avec des clefs uniques - on peut déclencher un traitement alternatif, enregistrer l'erreur, ou adapter le flux de données.
- L'option imperativestatement dans INVALID KEY permet d'assurer la robustesse du programme. Elle offre une forme de traitement d'exception personnalisée en COBOL, pouvant être utilisée pour enregistrer des erreurs dans un fichier journal, alerter un opérateur ou reconfigurer l'écriture.
- L'instruction WRITE n'écrase pas les données existantes, elle les ajoute ou les place selon le mode d'ouverture du fichier. Il est donc essentiel de bien comprendre le mode (OUTPUT, EXTEND, I-O) sous lequel le fichier a été ouvert pour éviter des effets inattendus.
- Le champ recordname doit impérativement correspondre à la structure du fichier cible pour éviter des erreurs. Une incompatibilité entre la structure de données et le fichier physique peut entraîner des résultats incorrects ou des erreurs à l'exécution. La précision dans la déclaration des FD (File Description) est donc capitale.
Dernière mise à jour : Jeudi, le 28 juillet 2011