Advertisement
Guest User

Untitled

a guest
Nov 7th, 2017
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
COBOL 3.73 KB | None | 0 0
  1. 000200 IDENTIFICATION DIVISION.
  2. 000300 PROGRAM-ID. LOADTBL1.
  3. 000400* LOAD A TABLE FROM A SEQUENTIAL FILE
  4. 000500* JUST LOAD - DON'T DO ANYTHING ELSE
  5. 000600* SEE PROGRAM LOADTBL2 FOR A PROGRAM THAT LOADS AND SEARCHES.
  6. 000700 ENVIRONMENT DIVISION.
  7. 000800 CONFIGURATION SECTION.
  8. 000900 INPUT-OUTPUT SECTION.
  9. 001000 FILE-CONTROL.
  10. 001100*   INPUT FILE PARTTABL
  11. 001200     SELECT TABLE-FILE ASSIGN PARTTABL.
  12. 001600 DATA DIVISION.
  13. 001700 FILE SECTION.
  14. 001800 FD  TABLE-FILE
  15. 001810     RECORDING MODE IS F
  16. 002000     RECORD CONTAINS 80 CHARACTERS.
  17. 002900 01  TABLE-RECORD.
  18. 002910      05  WS-TR-PART-NUMBER     PIC X(6).
  19. 003000      05  WS-TR-PART-DESC       PIC X(30).
  20. 003010      05  FILLER                PIC X(44).
  21. 003020
  22. 003030 WORKING-STORAGE SECTION.
  23. 003050 01 SWITCHES.
  24. 003060     05  TABLE-FILE-AT-END     PIC X  VALUE 'N'.
  25. 003070     05  SOMETHING-IN-TABLE       VALUE 'N'       PIC X.
  26. 003080     05  TABLE-OVERFLOW           VALUE 'N'       PIC X.
  27. 003090
  28. 003400 01  PART-TABLE.
  29. 003500*    THE 100 USED HERE IS ARBITRARY.
  30. 003600*    USE WHATEVER NUMBER YOU NEED FOR THE SIZE OF YOUR TABLE
  31. 003700     05  EACH-PART-INFO    OCCURS 100 TIMES
  32. 003900         ASCENDING KEY IS EACH-PART-NUMBER
  33. 003910         INDEXED BY PART-INDEX.
  34. 004000         10  EACH-PART-NUMBER      PIC X(6).
  35. 004100         10  EACH-PART-DESCRIPTION PIC X(30).
  36. 004200*    THE VALUE OF THE NEXT ITEM MUST BE THE SAME AS THE OCCURS AB
  37. 004300 01  PART-TABLE-MAX-OCCURS PIC S9(5) BINARY VALUE +100.
  38. 004400
  39. 004500 PROCEDURE DIVISION.
  40. 004600     PERFORM TABLE-INITIALIZATION
  41. 004700     PERFORM TABLE-PROCESS-ALL
  42. 004800         UNTIL TABLE-FILE-AT-END = 'Y'
  43. 005000     PERFORM TABLE-TERMINATION
  44. 005100     GOBACK.
  45. 005200
  46. 005300 TABLE-INITIALIZATION.
  47. 005400* MOVE HIGH-VALUES SO THAT ALL ENTRIES WILL HAVE THE HIGHEST
  48. 005500* VALUE POSSIBLE (LETS SEARCH ALL WORK RIGHT)
  49. 005600     MOVE HIGH-VALUES TO PART-TABLE
  50. 005700     SET PART-INDEX TO 1
  51. 005800     OPEN INPUT TABLE-FILE
  52. 005900     PERFORM TABLE-READ-PAR.
  53. 006000
  54. 006100 TABLE-PROCESS-ALL.
  55. 006110      IF PART-INDEX > PART-TABLE-MAX-OCCURS
  56. 006120      THEN
  57. 006130         MOVE 'Y' TO TABLE-FILE-AT-END
  58. 006140         MOVE 'Y' TO TABLE-OVERFLOW
  59. 006150           DISPLAY 'INDEX GT MAX'
  60. 006160      ELSE
  61. 006170         MOVE TABLE-RECORD TO EACH-PART-INFO(PART-INDEX)
  62. 006180         MOVE 'Y' TO SOMETHING-IN-TABLE
  63. 006190         SET PART-INDEX UP BY 1
  64. 006191*********  DISPLAY 'INDEX NOT GT MAX'
  65. 006192         PERFORM TABLE-READ-PAR
  66. 006193     END-IF.
  67. 006500
  68. 006600 TABLE-TERMINATION.
  69. 006700*    AT THIS POINT CHECK TO SEE IF THE TABLE
  70. 006800*    WAS PROPERLY LOADED
  71. 006910     IF TABLE-OVERFLOW = 'Y'
  72. 006920     THEN
  73. 006930        DISPLAY 'MORE RECORDS THAN TABLE ENTRIES'
  74. 006940        GO TO ERROR-EXIT
  75. 006950     END-IF
  76. 006960
  77. 006970     IF SOMETHING-IN-TABLE = 'Y'
  78. 006980     THEN
  79. 006990        DISPLAY 'TABLE APPEARS TO BE LOADED OK'
  80. 006991     ELSE
  81. 006992        DISPLAY 'NOTHING LOADED IN TABLE'
  82. 006993        GO TO ERROR-EXIT
  83. 006994     END-IF
  84. 006995
  85. 006998*    NO ONE SAYS YOU HAVE TO DO THIS
  86. 006999*    IT DISPLAYS ALL THE ENTRIES IN THE TABLE - JUST TO SHOW
  87. 007000*    IF IT WORKED PROPERLY
  88. 007001     DISPLAY 'HERE IS THE TABLE AFTER LOADING'
  89. 007002     PERFORM
  90. 007003         VARYING PART-INDEX FROM 1 BY 1
  91. 007004         UNTIL   PART-INDEX > PART-TABLE-MAX-OCCURS
  92. 007005
  93. 007006         DISPLAY EACH-PART-NUMBER (PART-INDEX)
  94. 007007                 EACH-PART-DESCRIPTION (PART-INDEX)
  95. 007008     END-PERFORM
  96. 007009
  97. 007800      CLOSE TABLE-FILE.
  98. 007900
  99. 008000 TABLE-READ-PAR.
  100. 008100     READ TABLE-FILE
  101. 008200         AT END MOVE 'Y' TO TABLE-FILE-AT-END
  102. 008300     END-READ.
  103. 008310
  104. 008400 ERROR-EXIT.
  105. 008500*    DISPLAY MESSAGES IF NEEDED
  106. 008700*    END THE PROGRAM
  107. 008800     GOBACK.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement