Cours gap fichier externe fichier en sortie

BoTTom |    Changer de couleur
 
             --------------------------------------------------------
             ! DEFINITION EXTERNE DES FICHIERS EN SORTIE SUR DISQUE !
             --------------------------------------------------------
 
     Comme pour les fichiers en entrée, il est possible de ne pas décrire
     les fichiers en sortie (fichiers DISK pour l'instant)
 
     Comme pour les fichiers en entrée nous indiquerons dans la spécif. F
     l'utilisation de la description externe.
 
     Grâce a cette description externe il nous sera possible de ne plus
     écrire de spécif. O. ou d'écrire des spécif. O très simplifiées.
 
     Nous allons reprendre un exemple pour expliquer cette codification.
 
     Reprenons l'exemple sur la liste des produits mais maintenant nous
     ne sortirons plus une liste mais copierons les enregistrements dans
     le fichier PRODUI2 en ajoutant le montant du stock d'un produit
     zone numérique packée de 9 chiffres dont 2 décimales.
 
     .Nous aurions pu l'écrire comme suit:


|    Changer de couleur
 
         1         2         3         4         5         6         7
     67890123456789012345678901234567890123456789012345678901234567890
     FPRODUIT IP  F      36  5PI     6 DISK
     FPRODUIT2O   F      41            DISK
     IPRODUIT NS  01
     I                                        1  36 ZON1
     C           PRQTE     MULT PRPU      PRMT    92H
     OPRODUIT2D        01
     O                         ZON1      36
     O                         PRMT      41P
                                           !
                                           !
                                   -----------------
                                   Signale la sortie
                                   d'une zone en
                                   format condensé.
 
 
    Réécrivons ce programme avec les fichiers sur disque d'entrée et
    de sortie en description externe, avec des spécif. O simplifiées.
 


|    Changer de couleur
 
         1         2         3         4         5         6         7
     67890123456789012345678901234567890123456789012345678901234567890
     FPRODUIT IP  E           K        DISK
     FPRODUIT2O   E                    DISK
     IPRODUITF    01
     C           PRQTE     MULT PRPU      PRMT
     OPRODUIF2D        01
     O                         *ALL
 
 
      Le fichier PRODUIT2 a une description externe, avec les noms de zone
      identiques à ceux du fichier PRODUIT, plus la zone PRMT.
 
      Expliquons ce nouveau programme.
 
   La première spécification F est classique (pour une description externe)
 
         1         2         3         4         5         6         7
     67890123456789012345678901234567890123456789012345678901234567890
     FPRODUIT IP  E           K        DISK
 


|    Changer de couleur
 
     La deuxième ressemble à la première sauf la colonne utilisation
      et la non-définition de clé (inutile).
 
 
         1         2         3         4         5         6         7
     67890123456789012345678901234567890123456789012345678901234567890
     FPRODUIT2O   E                    DISK
 
 
     Les nouveautés dans ce programme, ce sont bien les spécif. O.
     Détaillons les :
 
 
 
 
 
 
 
 
 
 


|    Changer de couleur
 
         1         2         3         4         5         6         7
     67890123456789012345678901234567890123456789012345678901234567890
     OPRODUIF2D        01
     O   !    !        !       *ALL
         !    !        !        !
         !    !        ! -----------------------------------
         !    !        ! Nouveau mot GAP indiquant la sortie
         !    !        ! de toutes les zones du fichier.
         !    !  --------------------
         !    !  conditionnement
         !    !  par l'ind. d'entrée
         ! ------------
         ! utilisation
         ! du cycle GAP (détail)
         !
         !
    ---------------
    nom de format
    du fichier à
    écrire
 


|    Changer de couleur
     -------------
     ! ATTENTION !
     -------------
 
    Cette écriture simplifiée du programme est possible si et seulement si
    les noms de zone du fichier en entrée sont identiques à ceux du ou des
    fichiers en sortie.
 
    -----------------------------------------------------------------------
 
    Réécrivons ce programme avec les fichiers sur disque d'entrée et
    de sortie en description externe, sans spécif O.
 
         1         2         3         4         5         6         7
     67890123456789012345678901234567890123456789012345678901234567890
     FPRODUIT IP  E           K        DISK
     FPRODUIT2O   E                    DISK
     IPRODUITF    01
     C           PRQTE     MULT PRPU      PRMT
     C                     WRITEPRODUIF2
 
 


|    Changer de couleur
 
     Une spécif C a été ajoutée.
 
     L'ordre d'écriture (équivalent spécif O type ADD)
 
         1         2         3         4         5         6         7
     67890123456789012345678901234567890123456789012345678901234567890
     C                     WRITEPRODUIF2
                             !     !
                             !     !
                             !-----------------
                             ! nom de format du
                             ! fichier
                             !
                             !
                     -------------------
                     Ordre d'écriture
                     indique l'ajout
                     d'1 enregistrement
                     dans le format du
                     fichier indiqué en
                     facteur2.


|    Changer de couleur
 
   La mise à jour peut se faire de la même manière :
 
      Fichier ouvert en U (Update) en col 15
 
     C                     UPDATPRODUIF2
 
   (m à j du dernier enregistrement lu, s'il n'y a pas eu de lecture,
    ==> erreur d' E/S).
 
   La suppression d'enregistrement :
 
     C                     DELETPRODUIF2
 
   (Dlt du dernier enregistrement lu, s'il n'y a pas eu de lecture,
    ==> erreur d' E/S).
 
 
 
 
 
 





©AF400