Advertisement
Guest User

Untitled

a guest
Mar 24th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
COBOL 25.30 KB | None | 0 0
  1. ***************************
  2. * début du programme  *
  3. ***************************
  4.  
  5. IDENTIFICATION DIVISION.
  6. PROGRAM-ID.  TPNOTE.
  7. DATE-WRITTEN.  10/02/2016.
  8. ENVIRONMENT DIVISION.
  9. CONFIGURATION SECTION.
  10. SPECIAL-NAMES.
  11. *virgule reconnue comme le symbole décimal
  12.     DECIMAL-POINT IS COMMA.
  13. INPUT-OUTPUT SECTION.
  14. FILE-CONTROL.
  15. * On indique quel fichier on utilise
  16. SELECT OPTIONAL FICHIER-FILM ASSIGN TO FILE-NAME
  17.     ORGANIZATION SEQUENTIAL
  18.     ACCESS SEQUENTIAL
  19.     FILE STATUS IS FILE-STATUS.
  20.      
  21. SELECT OPTIONAL FICHIER-FILM-IND ASSIGN TO FILE-NAME-IND
  22.       ORGANIZATION INDEXED
  23.       ACCESS  DYNAMIC
  24.       RECORD KEY film-num
  25.       ALTERNATE RECORD KEY film-mot1 WITH DUPLICATES
  26.       ALTERNATE RECORD KEY film-mot2 WITH DUPLICATES
  27.       FILE STATUS IS FILE-STATUS.
  28.      
  29. DATA DIVISION.
  30. * Déclaration des variables
  31. FILE SECTION.
  32. * On fait un truc avec le fichier
  33. FD FICHIER-FILM.
  34. 01 F1-ENR PIC x(96).
  35.      
  36.      
  37. FD FICHIER-FILM-IND.
  38. 01 F2-ENR.
  39.     02 film-num PIC 9(6).
  40.     02 film-nom PIC X(50).
  41.     02 film-mot1 PIC X(20).
  42.     02 film-mot2 PIC X(20).
  43.    
  44.      
  45.      
  46. WORKING-STORAGE SECTION.
  47.  
  48. 77 recherche-num PIC 9(6).
  49. 77 lig PIC 99.
  50. 77 lag PIC 99.
  51. 77 i PIC 99.
  52. 77 val-recherche PIC 99.
  53. 77 saisie-nom PIC X(50).
  54. 77 saisie-mot1 PIC X(20).
  55. 77 saisie-mot2 PIC X(20).
  56. 77 nb-film PIC 9(6).
  57. 77 fin-fichier PIC 9.
  58. 77 FILE-NAME PIC X(8) VALUE "FILM.dat".
  59. 77 FILE-NAME-IND PIC X(11) VALUE "FILMIND.dat".      
  60. 77 wchoix PIC X.
  61. 77 validation-saisie-film PIC X.
  62. 77 autre-saisie-film PIC X.
  63. 77 autre-affichage-film PIC X.
  64. 77 autre-affichage-8-film PIC X.
  65. 77 wmsg_erreur PIC X(30).
  66. 77 validation-suppression-film PIC X.
  67. 77 autre-suppression-film PIC X.
  68. 77 validation-modification-film PIC X.
  69. 77 autre-modification-film PIC X.
  70. 77 clef PIC X(20).
  71.    
  72.      
  73. 01 FILE-STATUS PIC X(2).
  74.     88 FILE-NOT-FOUND VALUE "35".
  75.    
  76. 01 REDEFINES FILE-STATUS PIC X.
  77.     88 FILE-OKAY VALUE "0".
  78.    
  79. 01  color-table USAGE comp-1.
  80.     03  black            PIC 9(5) VALUE 1.
  81.     03  blue             PIC 9(5) VALUE 2.
  82.     03  green            PIC 9(5) VALUE 3.
  83.     03  cyan             PIC 9(5) VALUE 4.
  84.     03  red              PIC 9(5) VALUE 5.
  85.     03  magenta          PIC 9(5) VALUE 6.
  86.     03  brown            PIC 9(5) VALUE 7.
  87.     03  white            PIC 9(5) VALUE 8.
  88.     03  backgrnd-black   PIC 9(5) VALUE 32.
  89.     03  backgrnd-blue    PIC 9(5) VALUE 64.
  90.     03  backgrnd-green   PIC 9(5) VALUE 96.
  91.     03  backgrnd-cyan    PIC 9(5) VALUE 128.
  92.     03  backgrnd-red     PIC 9(5) VALUE 160.
  93.     03  backgrnd-magenta PIC 9(5) VALUE 192.
  94.     03  backgrnd-brown   PIC 9(5) VALUE 224.
  95.     03  backgrnd-white   PIC 9(5) VALUE 256.
  96.    
  97. 01  ligne-tirets.
  98.     02  FILLER PIC x(80) VALUE ALL "-".
  99.    
  100. 01  ligne-titre.
  101.     02  FILLER PIC x VALUE "|".
  102.     02  FILLER PIC x(4) VALUE ALL SPACES.
  103.     02  FILLER PIC x(70) VALUE
  104.         "IUT Dept Info._ fichier FILMIND.DAT".
  105.     02  FILLER PIC x(4) VALUE ALL SPACES.
  106.     02  FILLER PIC x VALUE "|".
  107.    
  108. 01  ligne-cadre.
  109.     02  FILLER PIC x VALUE "|".
  110.     02  FILLER PIC x(78) VALUE ALL SPACES.
  111.     02  FILLER PIC x VALUE "|".
  112.    
  113. SCREEN SECTION.
  114.  
  115. 01 ecran-titre.
  116. 02 LINE 1 COL 1 PIC x(80) FROM ligne-tirets.
  117. 02 LINE 2 COL 1 PIC x(80) FROM ligne-titre.
  118. 02 LINE 3 COL 1 PIC x(80) FROM ligne-tirets.
  119.  
  120. 01 ecran-cadre.
  121. 02 LINE 4 COL 1 PIC x(80) FROM ligne-cadre.
  122. 02 LINE 5 COL 1 PIC x(80) FROM ligne-cadre.
  123. 02 LINE 6 COL 1 PIC x(80) FROM ligne-cadre.
  124. 02 LINE 7 COL 1 PIC x(80) FROM ligne-cadre.
  125. 02 LINE 8 COL 1 PIC x(80) FROM ligne-cadre.
  126. 02 LINE 9 COL 1 PIC x(80) FROM ligne-cadre.
  127. 02 LINE 10 COL 1 PIC x(80) FROM ligne-cadre.
  128. 02 LINE 11 COL 1 PIC x(80) FROM ligne-cadre.
  129. 02 LINE 12 COL 1 PIC x(80) FROM ligne-cadre.
  130. 02 LINE 13 COL 1 PIC x(80) FROM ligne-cadre.
  131. 02 LINE 14 COL 1 PIC x(80) FROM ligne-cadre.
  132. 02 LINE 15 COL 1 PIC x(80) FROM ligne-cadre.
  133. 02 LINE 16 COL 1 PIC x(80) FROM ligne-cadre.
  134. 02 LINE 17 COL 1 PIC x(80) FROM ligne-cadre.
  135. 02 LINE 18 COL 1 PIC x(80) FROM ligne-cadre.
  136. 02 LINE 19 COL 1 PIC x(80) FROM ligne-cadre.
  137. 02 LINE 20 COL 1 PIC x(80) FROM ligne-cadre.
  138. 02 LINE 21 COL 1 PIC x(80) FROM ligne-cadre.
  139. 02 LINE 22 COL 1 PIC x(80) FROM ligne-cadre.
  140. 02 LINE 23 COL 1 PIC x(80) FROM ligne-cadre.
  141. 02 LINE 24 COL 1 PIC x(80) FROM ligne-cadre.
  142. 02 LINE 25 COL 1 PIC x(80) FROM ligne-tirets.
  143.  
  144. 01 ecran-menu.
  145. 02 LINE 5 COL 39 COLOR green VALUE "MENU".
  146. 02 LINE 7 COL 22
  147.     VALUE "Creation du fichier indexe.................1".
  148. 02 LINE 10 COL 22
  149.     VALUE "Liste des film (paquets de 8)..............2".
  150. 02 LINE 11 COL 22
  151.     VALUE "Recherche par mot-clef.....................3".
  152. 02 LINE 12 COL 22
  153.     VALUE "Recherche par numero.......................4".
  154. 02 LINE 13 COL 22
  155.     VALUE "Saisie d'un nouveau film...................5".
  156. 02 LINE 14 COL 22
  157.     VALUE "Modification d'un film.....................6".
  158. 02 LINE 15 COL 22
  159.     VALUE "Suppression d'un film......................7".
  160. 02 LINE 19 COL 22
  161.     VALUE "Quitter....................................Q".
  162. 02 LINE 20 COL 46
  163.     VALUE " ==> Votre choix : ".
  164. 02 HIGHLIGHT COLOR cyan UPPER PIC X USING wchoix.
  165.  
  166. ***************************Ecran saisie/affichage/erreur******************
  167. 01 ecran-erreur-tous.
  168. 02 LINE 24 COL 8 COLOR red
  169.         PIC X(30) USING wmsg_erreur.
  170.      
  171. ****************************ecran recherche-mot-cle********************************************************
  172. 01 ecran-mot-cle-film.
  173.     02 LINE 6 COL 8
  174.     VALUE "MOT-CLE     : ".
  175.     02 HIGHLIGHT COLOR brown PIC X(20) USING clef.  
  176.     02 LINE 23 COL 8 COLOR green
  177.     VALUE "L'appui sur Entree permet de continuer.".
  178.  
  179. 01 ecran-affichage-clef.
  180.     02 LINE lig COL 8 COLOR red PIC 9(6) FROM film-num.
  181.     02 LINE lig COL 16 PIC X(50) FROM film-nom.
  182.     02 LINE lag COL 46 PIC X(20) FROM film-mot1.
  183.     02 LINE lag COL 56 PIC X(20) FROM film-mot2.
  184.  
  185.      
  186. ***********************ecran Suppression-film*********************************************
  187. 01 ecran-suppression-film.
  188.     02 LINE 5 COL 8
  189.     VALUE "NUMERO      : ".
  190.     02 HIGHLIGHT COLOR brown PIC 9(6) USING recherche-num.
  191.    
  192. 01 ecran-suppression-ok.
  193.     02 LINE 8 COL 8
  194.     VALUE "TITRE       : ".
  195.     02 HIGHLIGHT COLOR cyan PIC X(50) USING film-nom.
  196.     02 LINE 10 COL 8
  197.     VALUE "MOT CLE 1   : ".
  198.     02 HIGHLIGHT COLOR cyan PIC X(20) USING film-mot1.
  199.     02 LINE 12 COL 8
  200.     VALUE "MOT CLE 2   : ".
  201.     02 HIGHLIGHT COLOR cyan PIC X(20) USING film-mot2.
  202.     02 LINE 23 COL 8 COLOR green
  203.     VALUE "L'appui sur Entree permet de continuer.".
  204.    
  205. 01 ecran-supression-erreur.
  206. 02 LINE 22 COL 8 COLOR red
  207.         VALUE "Le numero de ce film n'existe pas. ".
  208. 02 LINE 23 COL 8 COLOR green
  209.         VALUE "Appuyer sur la touche Entree pour continuer... ".
  210.  
  211. 01 ecran-valider-suppression-film.
  212. 02 LINE 22 COL 8
  213.     VALUE "Valider la suppression de l'enregistrement  (O/N): ".
  214.  02 HIGHLIGHT COLOR cyan PIC X
  215.      USING validation-suppression-film.
  216.  
  217. 01 ecran-suppression-film-autre.
  218. 02 LINE 23 COL 8
  219.         VALUE "Autre film ? (O/N): ".
  220.     02 HIGHLIGHT COLOR cyan PIC X
  221.         USING autre-suppression-film.
  222.  
  223. ****************************ecran Modification-film************************************
  224. 01 ecran-modification-film.
  225.     02 LINE 5 COL 8
  226.     VALUE "NUMERO      : ".
  227.     02 HIGHLIGHT COLOR brown PIC 9(6) USING recherche-num.
  228.    
  229. 01 ecran-modification-ok.
  230.     02 LINE 8 COL 8
  231.     VALUE "TITRE       : ".
  232.     02 HIGHLIGHT COLOR cyan PIC X(50) USING film-nom.
  233.     02 LINE 10 COL 8
  234.     VALUE "MOT CLE 1   : ".
  235.     02 HIGHLIGHT COLOR cyan PIC X(20) USING film-mot1.
  236.     02 LINE 12 COL 8
  237.     VALUE "MOT CLE 2   : ".
  238.     02 HIGHLIGHT COLOR cyan PIC X(20) USING film-mot2.
  239.     02 LINE 23 COL 8 COLOR green
  240.     VALUE "L'appui sur Entree permet de continuer.".
  241.    
  242. 01 ecran-modification-erreur.
  243. 02 LINE 22 COL 8 COLOR red
  244.         VALUE "Le numero de ce film n'existe pas. ".
  245. 02 LINE 23 COL 8 COLOR green
  246.         VALUE "Appuyer sur la touche Entree pour continuer... ".
  247.  
  248. 01 ecran-valider-modification.
  249. 02 LINE 22 COL 8
  250.     VALUE "Valider modification (O/N): ".
  251.  02 HIGHLIGHT COLOR cyan PIC X
  252.      USING validation-modification-film.
  253.  
  254. 01 ecran-modification-film-autre.
  255. 02 LINE 23 COL 8
  256.         VALUE "Autre film ? (O/N): ".
  257.     02 HIGHLIGHT COLOR cyan PIC X
  258.         USING autre-modification-film.
  259.  
  260.  
  261.  
  262. *************************AFFICHAGE SEUL************************************
  263. 01 ecran-affichage-film.
  264.     02 LINE 5 COL 8
  265.     VALUE "NUMERO      : ".
  266.     02 LINE 5 COL 22 COLOR brown PIC 9(6) FROM film-num.
  267.     02 LINE 8 COL 8
  268.     VALUE "TITRE       : ".
  269.     02 HIGHLIGHT COLOR cyan UPPER PIC X(50) USING film-nom.
  270.     02 LINE 10 COL 8
  271.     VALUE "MOT CLE 1   : ".
  272.     02 HIGHLIGHT COLOR cyan UPPER PIC X(20) USING film-mot1.
  273.     02 LINE 12 COL 8
  274.     VALUE "MOT CLE 2   : ".
  275.     02 HIGHLIGHT COLOR cyan UPPER PIC X(20) USING film-mot2.
  276.     02 LINE 17 COL 8 COLOR green
  277.     VALUE "L'appui sur Entree stoppe l'affichage du film.".
  278.  
  279.  
  280. 01 ecran-affichage-film-autre.
  281.    02 LINE 23 COL 8 VALUE
  282.        "Quitter l'affichage ? (O/N): ".
  283.     02 HIGHLIGHT COLOR cyan UPPER PIC X
  284.         USING autre-affichage-film.
  285.      
  286. *****************************SAISIE***************************************
  287. 01 ecran-saisie-film.
  288.     02 LINE 5 COL 8
  289.     VALUE "NUMERO      : ".
  290.     02 LINE 5 COL 22 COLOR brown PIC 9(6) FROM film-num.
  291.     02 LINE 8 COL 8
  292.     VALUE "TITRE       : ".
  293.     02 HIGHLIGHT COLOR cyan UPPER PIC X(50) USING saisie-nom.
  294.     02 LINE 10 COL 8
  295.     VALUE "MOT CLE 1   : ".
  296.     02 HIGHLIGHT COLOR cyan UPPER PIC X(20) USING saisie-mot1.
  297.     02 LINE 12 COL 8
  298.     VALUE "MOT CLE 2   : ".
  299.     02 HIGHLIGHT COLOR cyan UPPER PIC X(20) USING saisie-mot2.
  300.     02 LINE 17 COL 8 COLOR green
  301.     VALUE "L'appui sur Entree stoppe la saisie du film.".
  302.    
  303.    
  304. 01 ecran-valider-saisie-film.
  305. 02 LINE 22 COL 8
  306.     VALUE "Valider création (O/N): ".
  307.  02 HIGHLIGHT COLOR cyan UPPER PIC X
  308.      USING validation-saisie-film.
  309.  
  310. 01 ecran-saisie-film-autre.
  311. 02 LINE 23 COL 8
  312.         VALUE "Autre film ? (O/N): ".
  313.     02 HIGHLIGHT COLOR cyan UPPER PIC X
  314.         USING autre-saisie-film.
  315.        
  316. ***************************AFFICHAGE PAR 8*********************************
  317. 01 ecran-affichage-film-8.
  318.     02 LINE lig COL 8 COLOR red PIC 9(6) FROM film-num.
  319.     02 LINE lig COL 16 PIC X(50) FROM film-nom.
  320.     02 LINE lag COL 46 PIC X(20) FROM film-mot1.
  321.     02 LINE lag COL 56 PIC X(20) FROM film-mot2.
  322.    
  323.  
  324. 01 ecran-affichage-8-film-autre.
  325. 02 LINE 23 COL 8
  326.         VALUE "Quitter l'affichage ? (O/N): ".
  327.     02 HIGHLIGHT COLOR cyan UPPER PIC X
  328.         USING autre-affichage-8-film.
  329.  
  330. ********************RECHERCHE DE FILM*******************************************
  331. 01 ecran-recherche-film.
  332.     02 LINE 5 COL 8
  333.     VALUE "NUMERO      : ".
  334.     02 HIGHLIGHT COLOR brown UPPER PIC 9(6) USING recherche-num.
  335.    
  336.  
  337.  
  338.  
  339. 01 ecran-recherche-ok.
  340.     02 LINE 8 COL 8
  341.     VALUE "TITRE       : ".
  342.     02 HIGHLIGHT COLOR cyan UPPER PIC X(50) USING film-nom.
  343.     02 LINE 10 COL 8
  344.     VALUE "MOT CLE 1   : ".
  345.     02 HIGHLIGHT COLOR cyan UPPER PIC X(20) USING film-mot1.
  346.     02 LINE 12 COL 8
  347.     VALUE "MOT CLE 2   : ".
  348.     02 HIGHLIGHT COLOR cyan UPPER PIC X(20) USING film-mot2.
  349.     02 LINE 23 COL 8 COLOR green
  350.     VALUE "L'appui sur Entree permet de continuer.".
  351.    
  352. 01 ecran-recherche-erreur.
  353. 02 LINE 8 COL 8 COLOR red
  354.         VALUE "Le numero de ce film n'existe pas. ".    
  355.  
  356. ***************************************************************************
  357.        
  358. PROCEDURE DIVISION.
  359. main.
  360.     PERFORM menu.
  361.    
  362. menu.
  363.     MOVE 0 TO fin-fichier.
  364.     MOVE ALL SPACES TO wchoix.
  365.    
  366.     OPEN INPUT FICHIER-FILM.
  367.     IF FILE-NOT-FOUND
  368.         OPEN OUTPUT FICHIER-FILM
  369.     ELSE
  370.         CLOSE FICHIER-FILM
  371.     END-IF.
  372.    
  373.     OPEN INPUT FICHIER-FILM-IND.
  374.     IF FILE-NOT-FOUND
  375.         OPEN OUTPUT FICHIER-FILM-IND
  376.     ELSE
  377.         CLOSE FICHIER-FILM-IND
  378.     END-IF.
  379.    
  380.     MOVE ALL SPACES TO film-num.
  381.     MOVE ALL SPACES TO film-nom.
  382.     MOVE ALL SPACES TO film-mot1.
  383.     MOVE ALL SPACES TO film-mot2.
  384.     PERFORM WITH TEST AFTER UNTIL wchoix="Q"
  385.    
  386.     DISPLAY ecran-titre
  387.     DISPLAY ecran-cadre
  388.     DISPLAY ecran-menu
  389.     ACCEPT ecran-menu
  390.     EVALUATE wchoix
  391.     WHEN "1"
  392.     PERFORM copie
  393.     WHEN "2"
  394.     PERFORM ouverture-affichage-8
  395.     WHEN "3"
  396.     PERFORM init-mot-clef
  397.     WHEN "4"
  398.     PERFORM recherche-film
  399.     WHEN "5"
  400.     PERFORM recherche-film
  401.     WHEN "6"
  402.     PERFORM recherche-film
  403.     WHEN "7"
  404.     PERFORM recherche-film
  405.     WHEN "Q"
  406.     PERFORM fin
  407. **********************Condition si choix différent************************
  408.     END-EVALUATE
  409.     IF wchoix NOT = "1" AND
  410.        wchoix NOT = "2" AND
  411.        wchoix NOT = "3" AND
  412.        wchoix NOT = "4" AND
  413.        wchoix NOT = "5" AND
  414.        wchoix NOT = "6" AND
  415.        wchoix NOT = "7" AND
  416.        wchoix NOT = "Q" THEN
  417.        MOVE ALL SPACES TO wmsg_erreur
  418.        MOVE "Saisie incorrecte" TO wmsg_erreur
  419.        DISPLAY ecran-erreur-tous
  420.     END-IF
  421.     END-PERFORM.
  422.     PERFORM get-return.
  423.  
  424. *******************************Recherche-film*********************************
  425. ouverture-recherche-film.
  426.     OPEN INPUT FICHIER-FILM
  427.     PERFORM recherche-film.
  428.  
  429.  
  430. recherche-film.
  431.     MOVE 0 TO val-recherche.
  432.     DISPLAY ecran-titre.
  433.     DISPLAY ecran-cadre.
  434.     DISPLAY ecran-recherche-film.
  435.     ACCEPT ecran-recherche-film.
  436.     PERFORM get-return.
  437.     PERFORM WITH TEST AFTER UNTIL fin-fichier = 1
  438.         READ FICHIER-FILM
  439.             AT END
  440.                 CLOSE FICHIER-FILM
  441.                 MOVE 1 TO fin-fichier
  442.                 IF val-recherche = 0
  443.                     DISPLAY ecran-recherche-erreur
  444.                     PERFORM get-return
  445.                     PERFORM menu
  446.                 END-IF
  447.             NOT AT END
  448.                 IF film-num = recherche-num
  449.                     MOVE 1 TO val-recherche
  450.                     DISPLAY ecran-recherche-ok
  451.                     PERFORM get-return
  452.                     CLOSE FICHIER-FILM
  453.                     PERFORM menu
  454.                 END-IF
  455.         END-READ
  456.     END-PERFORM.
  457.    
  458.  
  459. *************************************Affichage-film*******************
  460. ouverture-affichage.
  461.     OPEN INPUT FICHIER-FILM.
  462.     PERFORM affichage-film.
  463.    
  464. affichage-film.    
  465.     DISPLAY ecran-titre.
  466.     DISPLAY ecran-cadre.
  467.     PERFORM WITH TEST AFTER UNTIL fin-fichier = 1
  468.         READ FICHIER-FILM
  469.             AT END
  470.                 CLOSE FICHIER-FILM
  471.                 MOVE 1 TO fin-fichier
  472.             NOT AT END
  473.                 DISPLAY ecran-affichage-film
  474.                 PERFORM affichage-film-autre
  475.         END-READ
  476.     END-PERFORM.
  477.     PERFORM menu.
  478.    
  479. affichage-film-autre.
  480.     DISPLAY ecran-affichage-film-autre.
  481.     ACCEPT ecran-affichage-film-autre.
  482.     IF autre-affichage-film = "O" OR "o"
  483.         CLOSE FICHIER-FILM
  484.         MOVE 0 TO fin-fichier
  485.         PERFORM menu
  486.     END-IF.
  487.     IF autre-affichage-film = "N" OR "n"
  488.         PERFORM affichage-film
  489.     END-IF.
  490. ******************************************
  491.     IF autre-affichage-film NOT = "O" AND
  492.        autre-affichage-film NOT = "N" AND
  493.        autre-affichage-film NOT = "o" AND
  494.        autre-affichage-film NOT = "n" THEN
  495.        MOVE ALL SPACES TO wmsg_erreur
  496.        MOVE "Saisie incorrecte" TO wmsg_erreur
  497.        DISPLAY ecran-erreur-tous
  498.        PERFORM affichage-film-autre
  499.     END-IF.
  500. ********************************Saisie-film*******************************
  501. saisie-film.
  502.     MOVE ALL SPACES TO saisie-nom.
  503.     MOVE ALL SPACES TO saisie-mot1.
  504.     MOVE ALL SPACES TO saisie-mot2.
  505.     MOVE 0 TO fin-fichier.
  506.     PERFORM clrscreen.
  507.     DISPLAY ecran-titre.
  508.     DISPLAY ecran-cadre.
  509.     PERFORM saisie-affi-nb.
  510.    
  511. saisie-film-autre.
  512.     DISPLAY ecran-saisie-film-autre.
  513.     ACCEPT ecran-saisie-film-autre.
  514.     IF autre-saisie-film = "O" OR "o"
  515.         PERFORM saisie-film
  516.     END-IF.
  517.     IF autre-saisie-film = "N" OR "n"
  518.         PERFORM menu
  519.     END-IF.
  520. ***************************************
  521.     IF autre-saisie-film NOT = "O" AND
  522.        autre-saisie-film NOT = "N" AND
  523.        autre-saisie-film NOT = "o" AND
  524.        autre-saisie-film NOT = "n" THEN
  525.        MOVE ALL SPACES TO wmsg_erreur
  526.        MOVE "Saisie incorrecte" TO wmsg_erreur
  527.        DISPLAY ecran-erreur-tous
  528.     END-IF.
  529.        
  530. saisie-film-valider.
  531.      DISPLAY ecran-valider-saisie-film.
  532.      ACCEPT ecran-valider-saisie-film.
  533.      IF validation-saisie-film = "O" OR "o"
  534.          MOVE saisie-nom TO film-nom
  535.          MOVE saisie-mot1 TO film-mot1
  536.          MOVE saisie-mot2 TO film-mot2
  537.          OPEN EXTEND FICHIER-FILM
  538.          WRITE F1-ENR
  539.          CLOSE FICHIER-FILM
  540.          PERFORM saisie-film-autre
  541.      END-IF.    
  542.      IF validation-saisie-film = "N" OR "n"
  543.          PERFORM clrscreen
  544.          PERFORM saisie-film
  545.      END-IF.
  546. ***************************************
  547.     IF validation-saisie-film NOT = "O" AND
  548.        validation-saisie-film NOT = "N" AND
  549.        validation-saisie-film NOT = "o" AND
  550.        validation-saisie-film NOT = "n" THEN
  551.        MOVE ALL SPACES TO wmsg_erreur
  552.        MOVE "Saisie incorrecte" TO wmsg_erreur
  553.        DISPLAY ecran-erreur-tous
  554.     END-IF.
  555.      PERFORM get-return.
  556.  
  557. saisie-affi-nb.
  558.     OPEN INPUT FICHIER-FILM.
  559.     PERFORM WITH TEST AFTER UNTIL fin-fichier = 1
  560.         READ FICHIER-FILM
  561.             AT END
  562.                 MOVE 1 TO fin-fichier
  563.                 ADD 1 TO film-num
  564.         END-READ
  565.     END-PERFORM.
  566.         CLOSE FICHIER-FILM.
  567.         DISPLAY ecran-saisie-film.
  568.         ACCEPT ecran-saisie-film.
  569.         PERFORM get-return.
  570.         PERFORM saisie-film-valider.
  571.      
  572. ***************Affichage par 8*********************************************
  573. ouverture-affichage-8.
  574.     MOVE 0 TO fin-fichier.
  575.     OPEN INPUT FICHIER-FILM-IND.
  576.     PERFORM affichage-film-8.
  577.  
  578. affichage-film-8.
  579.       PERFORM clrscreen.
  580.       DISPLAY ecran-titre.
  581.       DISPLAY ecran-cadre.
  582.       MOVE 0 TO i
  583.       MOVE 4 TO lig
  584.       MOVE 5 TO lag              
  585.       PERFORM WITH TEST AFTER UNTIL fin-fichier = 1
  586.         READ FICHIER-FILM-IND NEXT
  587.           AT END
  588.             MOVE 1 TO fin-fichier
  589.           NOT AT END
  590.             ADD 1 TO i
  591.             COMPUTE lig = lig + 2
  592.             COMPUTE lag = lag + 2
  593.                 DISPLAY ecran-affichage-film-8
  594.                 IF i = 8
  595.                 DISPLAY ecran-affichage-film-8
  596.                     MOVE 0 TO i
  597.                     MOVE 4 TO lig
  598.                 MOVE 5 TO lag
  599.                 PERFORM affichage-film-8-autre
  600.                
  601.                
  602.                 END-IF
  603.            END-READ
  604.          END-PERFORM.
  605.        CLOSE FICHIER-FILM-IND.
  606.          PERFORM get-return.
  607.        MOVE 0 TO i
  608.        MOVE 4 TO lig
  609.        MOVE 5 TO lag
  610.        PERFORM menu.
  611.        
  612.  
  613. affichage-film-8-autre.
  614.     MOVE ALL SPACES TO autre-affichage-8-film.
  615.     DISPLAY ecran-affichage-8-film-autre.
  616.     ACCEPT ecran-affichage-8-film-autre.
  617.     IF autre-affichage-8-film = "O" OR "o"
  618.         CLOSE FICHIER-FILM-IND
  619.         MOVE 0 TO fin-fichier
  620.         PERFORM menu
  621.     END-IF.
  622.     IF autre-affichage-8-film = "N" OR "n"
  623.         PERFORM affichage-film-8
  624.        PERFORM get-return
  625.     END-IF.
  626.     IF autre-affichage-8-film NOT = "O" AND
  627.        autre-affichage-8-film NOT = "N" AND
  628.        autre-affichage-8-film NOT = "o" AND
  629.        autre-affichage-8-film NOT = "n" THEN
  630.        MOVE ALL SPACES TO wmsg_erreur
  631.        MOVE "Saisie incorrecte" TO wmsg_erreur
  632.        DISPLAY ecran-erreur-tous
  633.        PERFORM affichage-film-8-autre
  634.     END-IF.
  635. ***************************************************************************
  636.  
  637.      
  638.      
  639.      
  640.      
  641.      
  642. copie.
  643.       MOVE "Creation EN COURS..." TO wmsg_erreur.
  644.       DISPLAY ecran-erreur-tous.
  645.       OPEN INPUT FICHIER-FILM.
  646.       OPEN OUTPUT FICHIER-FILM-IND.
  647.       MOVE 0 TO fin-fichier.
  648.       PERFORM WITH TEST AFTER UNTIL fin-fichier = 1
  649.         READ FICHIER-FILM
  650.                 AT END MOVE 1 TO fin-fichier
  651.             NOT AT END
  652.             MOVE F1-ENR TO F2-ENR
  653.             WRITE F2-ENR
  654.                 INVALID KEY
  655.                     DISPLAY "Erreur écriture"
  656.                     PERFORM get-return
  657.                     END-WRITE
  658.                 END-READ
  659.             END-PERFORM
  660.         CLOSE FICHIER-FILM-IND.
  661.         CLOSE FICHIER-FILM.
  662.         MOVE ALL SPACES TO wmsg_erreur.
  663.           MOVE "Creation TERMINEE." TO wmsg-erreur.
  664.         DISPLAY ecran-erreur-tous.
  665.           PERFORM get-return.
  666.        
  667. ************************Procédure mot-clé****************************
  668.  
  669.  
  670.  
  671. init-mot-clef.
  672.       PERFORM clrscreen.
  673.       MOVE ALL SPACES TO film-mot1.      
  674.       DISPLAY ecran-cadre.
  675.       DISPLAY ecran-titre.
  676.       DISPLAY ecran-mot-cle-film.
  677.       ACCEPT ecran-mot-cle-film.
  678.       PERFORM clrscreen.
  679.      
  680.       MOVE clef TO film-mot1.
  681.      
  682.       MOVE 0 TO fin-fichier
  683.       OPEN INPUT FICHIER-FILM-IND.    
  684.       PERFORM recherche-mot-clef.
  685.  
  686. recherche-mot-clef.
  687.      
  688.       PERFORM clrscreen.
  689.       DISPLAY ecran-cadre.
  690.       DISPLAY ecran-titre.
  691.       START FICHIER-FILM-IND KEY=film-mot1
  692.           INVALID KEY
  693.             MOVE ALL SPACES TO wmsg_erreur
  694.             MOVE "Le mot clef est inexistant." TO wmsg_erreur                      
  695.             DISPLAY ecran-erreur-tous
  696.                 PERFORM get-return
  697.           NOT INVALID KEY
  698.             MOVE 0 TO i
  699.             MOVE 4 TO lig
  700.         MOVE 5 TO lag      
  701.             PERFORM WITH TEST AFTER UNTIL fin-fichier = 1
  702.                 READ FICHIER-FILM-IND NEXT
  703.                     AT END
  704.                         MOVE 1 TO fin-fichier
  705.                     NOT AT END
  706.                     MOVE 0 TO fin-fichier
  707.                     IF NOT film-mot1 = clef
  708.                         MOVE 1 TO fin-fichier
  709.                    
  710.                     ELSE
  711.                         ADD 1 TO i
  712.                         COMPUTE lig = lig + 2
  713.                         COMPUTE lag = lag + 2
  714.                         DISPLAY ecran-affichage-clef
  715.                         IF i = 8
  716.                             DISPLAY ecran-affichage-clef
  717.                             MOVE 0 TO i
  718.                             MOVE 4 TO lig
  719.                             MOVE 5 TO lag
  720.                            
  721. *----------------  
  722.  
  723.  
  724.     DISPLAY ecran-affichage-8-film-autre                    
  725.     ACCEPT ecran-affichage-8-film-autre
  726.     IF autre-affichage-8-film = "O" OR "o"
  727.         CLOSE FICHIER-FILM-IND
  728.         MOVE 0 TO fin-fichier
  729.         PERFORM menu
  730.     END-IF
  731.     IF autre-affichage-8-film = "N" OR "n"
  732.         PERFORM clrscreen
  733.         DISPLAY ecran-cadre
  734.         DISPLAY ecran-titre
  735.        
  736.     END-IF
  737.     IF autre-affichage-8-film NOT = "O" AND
  738.        autre-affichage-8-film NOT = "N" AND
  739.        autre-affichage-8-film NOT = "o" AND
  740.        autre-affichage-8-film NOT = "n" THEN
  741.        MOVE ALL SPACES TO wmsg_erreur
  742.        MOVE "Saisie incorrecte" TO wmsg_erreur
  743.        DISPLAY ecran-erreur-tous
  744.        PERFORM affichage-film-clef-autre
  745.     END-IF
  746.    
  747.  
  748. *---------------
  749.                        END-IF
  750.                     END-IF  
  751.                 END-READ
  752.                
  753.         END-PERFORM
  754.           PERFORM get-return
  755.       END-START.
  756.       MOVE clef TO film-mot2.
  757.       PERFORM clrscreen.
  758.       DISPLAY ecran-cadre.
  759.       DISPLAY ecran-titre.
  760.       START FICHIER-FILM-IND KEY=film-mot2
  761.           INVALID KEY
  762.             MOVE ALL SPACES TO wmsg_erreur
  763.             MOVE "Le mot clef est inexistant." TO wmsg_erreur                      
  764.             DISPLAY ecran-erreur-tous
  765.                 PERFORM get-return
  766.           NOT INVALID KEY
  767.             MOVE 0 TO i
  768.             MOVE 4 TO lig
  769.         MOVE 5 TO lag      
  770.             PERFORM WITH TEST AFTER UNTIL fin-fichier = 1
  771.                 READ FICHIER-FILM-IND NEXT
  772.                     AT END
  773.                         MOVE 1 TO fin-fichier
  774.                     NOT AT END
  775.                     IF NOT film-mot2 = clef
  776.                         MOVE 1 TO fin-fichier
  777.                    
  778.                     ELSE
  779.                         ADD 1 TO i
  780.                         COMPUTE lig = lig + 2
  781.                         COMPUTE lag = lag + 2
  782.                         DISPLAY ecran-affichage-clef
  783.                         IF i = 8
  784.                             DISPLAY ecran-affichage-clef
  785.                             MOVE 0 TO i                            
  786.                             MOVE 4 TO lig
  787.                             MOVE 5 TO lag
  788. *----------------  
  789.  
  790.  
  791.     DISPLAY ecran-affichage-8-film-autre                    
  792.     ACCEPT ecran-affichage-8-film-autre
  793.     IF autre-affichage-8-film = "O" OR "o"
  794.         CLOSE FICHIER-FILM-IND
  795.         MOVE 0 TO fin-fichier
  796.         PERFORM menu
  797.     END-IF
  798.     IF autre-affichage-8-film = "N" OR "n"
  799.         PERFORM clrscreen
  800.         DISPLAY ecran-cadre
  801.         DISPLAY ecran-titre
  802.        
  803.     END-IF
  804.     IF autre-affichage-8-film NOT = "O" AND
  805.        autre-affichage-8-film NOT = "N" AND
  806.        autre-affichage-8-film NOT = "o" AND
  807.        autre-affichage-8-film NOT = "n" THEN
  808.        MOVE ALL SPACES TO wmsg_erreur
  809.        MOVE "Saisie incorrecte" TO wmsg_erreur
  810.        DISPLAY ecran-erreur-tous
  811.        PERFORM affichage-film-clef-autre
  812.     END-IF
  813.    
  814.  
  815. *---------------
  816.                        END-IF
  817.                     END-IF  
  818.                 END-READ
  819.                
  820.         END-PERFORM
  821.           PERFORM get-return
  822.       END-START.
  823.  
  824.       CLOSE FICHIER-FILM-IND.
  825.      
  826.  
  827.  
  828.  
  829.  
  830. affichage-film-clef-autre.
  831.    
  832.  
  833.  
  834.  
  835.  fin.
  836.     STOP RUN.
  837. clrscreen.
  838.     DISPLAY "" NO ADVANCING WITH BLANK SCREEN.
  839. get-return.
  840.     ACCEPT OMITTED.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement