cobol - 我如何让这个棒球项目运行起来?
问题描述
我有这个我正在尝试编写的 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.
解决方案
您只能从您 WORKING STORAGE
以后发布。你能告诉我们是怎么FILE SECTION
写的吗?此外,您收到的错误。
考虑:
- 使用
FILLER
字段和变量名称代替空格。 - 小心流程,你不是在呼吁
300-LINE
段落。PERFORM
当另一个段落开始时中断。 - 那是
200-PROCESS-ONE-RECORD
因为您没有将 2 行添加到LINE-COUNT
.
其余的,我认为它很完美。
推荐阅读
- .htaccess - 带有动态 GET 参数的 410 重定向 url
- azure - 什么时候创建物理分区?
- phpdocx - 如何使用 php jquery 创建 docx 文件
- python-3.x - 通过 corpora.csvcorpus 在 gensim LDA 中输入 CSV
- python - 使用 login_required 对烧瓶应用程序进行单元测试
- linux - 我在将 mod_ssl 安装到我的 AWS Apache 实例时遇到问题
- python - 如何从 tf.contrib.layers.fully_connected() 中提取名称
- shell - 如何使用 for 循环为两个变量执行语句?
- android - 如何同时将整数和字符串放入地图中?
- python - boto3模块在访问其属性时抛出属性错误