首页 > 解决方案 > 我如何让这个棒球项目运行起来?

问题描述

我有这个我正在尝试编写的 cobol 程序,但我无法运行它,因为有很多错误(红/蓝线)我相信它与读入和读出文件有关。我在想这个错误可能是因为我没有放入 FD,但是当我这样做时,它仍然是错误的。我的 seq 文件名为 BASEBALL-2.seq。

   WORKING-STORAGE SECTION.
   01  ARE-THERE-MORE-RECORDS      PIC X(3)  VALUE 'YES'.

   01 LINE-COUNT                   PIC 99    VALUE ZEROS.

   01  WS-DATE.
       05  RUN-YEAR                PIC XX.
       05  RUN-MONTH               PIC XX.
       05  RUN-DAY                 PIC XX.
   01  HEADING-LINE-1.
       05                          PIC X(24) VALUE SPACES.
       05                          PIC X(26)
           VALUE 'BASEBALL PLAYER STATISTICS'.
       05                          PIC X(12) VALUE SPACES.
       05  HL-1-DATE.
           10  MONTH-2             PIC XX.
           10                      PIC X      VALUE '/'.
           10  DAY-2               PIC XX.
           10                      PIC X      VALUE '/'.
           10  YEAR-2              PIC XX.
       05                          PIC X(6)   VALUE SPACES.
       05  PAGE-1                  PIC X(4)   VALUE 'PAGE'.

   01  HEADING-LINE-2.
       05                          PIC X(6)   VALUE 'LEAGUE'.
       05                          PIC X(3)   VALUE SPACES.
       05                          PIC X(4)   VALUE 'TEAM'.
       05                          PIC X(5)   VALUE SPACES.
       05                          PIC X(4)   VALUE 'NAME'.
       05                          PIC X(10)  VALUE SPACES.
       05                          PIC X(4)   VALUE 'HITS'.
       05                          PIC X(6)   VALUE SPACES.
       05                          PIC X(7)   VALUE 'AT BATS'.
   01  DETAIL-LINE.
       05 BLANK-A-OUT              PIC X      VALUE SPACES.
       05 DL-LEAGUE                PIC XX.
       05 BLANK-B-OUT              PIC X(3)   VALUE SPACES.
       05 DL-TEAM                  PIC X(3).
       05 BLANK-C-OUT              PIC X(3)   VALUE SPACES.
       05 DL-NAME                  PIC X(10).
       05 BLANK-D-OUT              PIC X(3)   VALUE SPACES.
       05 DL-HITS                  PIC ZZ9.
       05 BLANK-E-OUT              PIC X(3)   VALUE SPACES.
       05 DL-AT-BATS               PIC ZZ9.

   PROCEDURE DIVISION.
   100-MAIN.
       OPEN INPUT BASEBALL-FILE-IN
       OPEN OUTPUT BASEBALL-FILE-OUT

       ACCEPT WS-DATE FROM DATE
       MOVE RUN-MONTH TO MONTH-2
       MOVE RUN-DAY TO DAY-2
       MOVE RUN-YEAR TO YEAR-2
       WRITE BASEBALL-RECORD-OUT

       PERFORM UNTIL ARE-THERE-MORE-RECORDS = 'NO '
           READ BASEBALL-FILE-IN
               AT END
                   MOVE 'NO ' TO ARE-THERE-MORE-RECORDS
               NOT AT END
                   PERFORM 200-PROCESS-ONE-RECORD
           END-READ
       END-PERFORM

       CLOSE BASEBALL-FILE-IN
       CLOSE BASEBALL-FILE-OUT
       STOP RUN.


   200-PROCESS-ONE-RECORD.
       MOVE LEAGUE-IN TO DL-LEAGUE
       MOVE SPACES TO BLANK-A-OUT
       MOVE TEAM-IN TO DL-TEAM
       MOVE SPACES TO BLANK-B-OUT
       MOVE NAME-IN TO DL-NAME
       MOVE SPACES TO BLANK-C-OUT
       MOVE HITS-IN TO DL-HITS
       MOVE SPACES TO BLANK-D-OUT
       MOVE AT-BATS-IN TO DL-AT-BATS
       MOVE SPACES TO BLANK-E-OUT
       WRITE BASEBALL-RECORD-OUT
           AFTER ADVANCING 2 LINES.

   300-LINE.
       IF  LINE-COUNT >= 50
           PERFORM 400-NEXT-PAGE
       END-IF
       WRITE BASEBALL-RECORD-OUT
           AFTER ADVANCING 1 LINE
       ADD 1 TO LINE-COUNT.

   400-NEXT-PAGE.
       WRITE BASEBALL-RECORD-OUT
           AFTER ADVANCING PAGE
       MOVE ZEROS TO LINE-COUNT.

标签: cobol

解决方案


您只能从您  WORKING STORAGE以后发布。你能告诉我们是怎么FILE SECTION写的吗?此外,您收到的错误。

考虑:

  • 使用FILLER字段和变量名称代替空格。
  • 小心流程,你不是在呼吁300-LINE段落。PERFORM当另一个段落开始时中断。
  • 那是200-PROCESS-ONE-RECORD因为您没有将 2 行添加到LINE-COUNT.

其余的,我认为它很完美。


推荐阅读