gpt4 book ai didi

COBOL 读取/存储在表中

转载 作者:行者123 更新时间:2023-12-03 04:45:01 27 4
gpt4 key购买 nike

本练习的目标是读取输入文件并将其存储到表中,然后验证输入中的某些字段并输出任何错误记录。我需要读取并存储每个策略组,以便表中一次仅存储 5 条记录,而不是整个文件。

所以我需要读取一个包含 5 条记录的策略组,进行处理,然后读取接下来的 5 条记录,依此类推,直到文件末尾。

This is the input file.
10A 011111 2005062520060625
20A 011111000861038
32A 011111 79372
60A 0111112020 6 4
94A 011111 080 1
10A 02222 2005082520060825
20A 022221000187062
32A 022221 05038
60A 0222212003 6 4
94A 022221 090 1
....

通过让我的表 OCCUR 5 次,我能够将前 5 条记录加载到表中,但我不知道如何继续。我的代码如下。 (我写它只是为了看看它是否正常工作,但它打印了带有前 4 条记录的标题行,而不是只打印前 5 条) 01 表格。

05  T1-RECORD-TABLE.                                
10 T1-ENTRY OCCURS 5 TIMES
INDEXED BY T1-INDEX.

15 RECORD-TYPE-10 PIC X(80).
15 RECORD-TYPE-20 PIC X(80).
15 RECORD-TYPE-32 PIC X(80).
15 RECORD-TYPE-60 PIC X(80).
15 RECORD-TYPE-94 PIC X(80).

copy trnrec10.
COPY TRNREC20.
COPY TRNREC32.
COPY TRNREC60.
COPY TRNREC94.
.....

Z200-READ-FILES.
READ DISK-IN INTO T1-ENTRY(T1-INDEX)
AT END MOVE 'YES' TO END-OF-FILE-SW.

WRITE PRINT-RECORD FROM T1-ENTRY(T1-INDEX).

我不想一步一步地做到这一点(尽管那很好:P)因为我知道我需要做什么,我只是不知道如何去做,因为我的教科书和类(class)笔记毫无用处大部头书。我已经被困在这个问题上有一段时间了,但我尝试的任何方法都不起作用。

最佳答案

我假设每个策略组恰好有 5 条记录,且具有 5 种记录类型。

您可以像这样设置您的工作存储。

05  T1-RECORD.
10 T1-RECORD-TYPE PIC XX.
10 FILLER PIC X(78).

COPY TRNREC10.
COPY TRNREC20.
COPY TRNREC32.
COPY TRNREC60.
COPY TRNREC94.

那么你阅读的段落将如下所示。我假设 TRNREC10-RECORD 是 TRNREC10 字帖的 01 级别。如果不是,请替换以下代码中的实际 01 级别。

2200-READ-FILE.                               
READ DISK-IN INTO T1-RECORD
AT END MOVE 'YES' TO END-OF-FILE-SW.

IF END-OF-FILE-SW = 'NO'
IF T1-RECORD-TYPE = '10'
MOVE T1-RECORD TO TRNREC10-RECORD
END-IF
IF T1-RECORD-TYPE = '20'
MOVE T1-RECORD TO TRNREC20-RECORD
END-IF
...
END-IF.

你写的段落看起来像这样

2400-WRITE-FILE.
WRITE PRINT-RECORD FROM TRNREC10-RECORD
WRITE PRINT-RECORD FROM TRNREC20-RECORD
...

您的处理段落将访问字帖记录中的数据。

关于COBOL 读取/存储在表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19985579/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com