Cobol 我的任务是从第一个文件中读取一条记录,检查第二个文件中的相应记录并显示它
我的任务是从第一个文件中读取一条记录,检查第二个文件中的相应记录并显示它。 这是我的代码:Cobol 我的任务是从第一个文件中读取一条记录,检查第二个文件中的相应记录并显示它,cobol,Cobol,我的任务是从第一个文件中读取一条记录,检查第二个文件中的相应记录并显示它。 这是我的代码: PERFORM READ-PARA1 THRU END-PARA UNTIL WS-END-OF-FILE. PERFORM READ-PARA2 THRU END-PARA UNTIL WS-END-OF-FILE. CLOSE FILEX. CLOSE FILEY.
PERFORM READ-PARA1 THRU END-PARA UNTIL WS-END-OF-FILE.
PERFORM READ-PARA2 THRU END-PARA UNTIL WS-END-OF-FILE.
CLOSE FILEX.
CLOSE FILEY.
STOP RUN.
READ-PARA1.
READ FILEX
AT END
MOVE 'Y' TO WS-EOF-IND.
DISPLAY SPACE
DISPLAY OCODE1,' 'ACODE1,' 'POLNO1,' 'EDATE1,
' 'PHOLD1,' 'LOCATION1,' '.
READ-PARA2.
READ FILEY
READ FILEY
AT END
PERFORM READ-PARA3 UNTIL R1 = 4.
IF POLNO1 = POLNO2
DISPLAY ' ',
LICNO1,' 'VMAKE1,' 'VMODEL,' 'YEAR,' 'PREM
ELSE
READ FILEY NEXT RECORD
GO TO READ-PARA2.
END-PARA.
EXIT.
READ-PARA3.
CLOSE FILEY.
OPEN INPUT FILEY.
READ FILEY
AT END
MOVE 'Y' TO WS-EOF-IND.
ADD 1 TO R1.
IF POLNO1 = POLNO2
DISPLAY ' ',
DISPLAY ' ',
LICNO1,' 'VMAKE1,' 'VMODEL,' 'YEAR,' 'PREM
ELSE
READ FILEY NEXT RECORD
GO TO READ-PARA3.
此代码仅用于查找文件1的第一条记录的对应记录,但对于其余所有记录,它都显示为空,并且都是顺序文件。我真的不知道在这里该说什么,除了可能尝试使用最新版本重新编写程序外 编码实践-您当前的代码混合了COBOL-85之前/之后的编码风格,因此很难遵循。试着重新写 有以下几点 目标
PERFORM-THRU
<代码>执行正常,通过位是COBOL-85之前的回溯位,不应再使用。如果需要在一个循环中预制几个段落/部分,请尝试以下方法:
直到出现某种情况为止
执行A段
PEROFMR第B段
末端执行
END-IF
,END-PERFORM
等转到
。很少有地方可以使用转到
。在这种规模/复杂度的程序中,绝不应使用它EXIT
的段落。正确使用范围终止符时(参见第1点和第2点)<不再需要代码>退出如果您设法按照上述准则重新编写,您可能会发现您的问题更容易发现和修复。再试试看。我认为第二次尝试可能会更好。我真的不知道该说些什么,除了可能尝试使用最新版本重新编写程序 编码实践-您当前的代码混合了COBOL-85之前/之后的编码风格,因此很难遵循。试着重新写 有以下几点 目标
PERFORM-THRU
<代码>执行正常,通过位是COBOL-85之前的回溯位,不应再使用。如果需要在一个循环中预制几个段落/部分,请尝试以下方法:
直到出现某种情况为止
执行A段
PEROFMR第B段
末端执行
END-IF
,END-PERFORM
等转到
。很少有地方可以使用转到
。在这种规模/复杂度的程序中,绝不应使用它EXIT
的段落。正确使用范围终止符时(参见第1点和第2点)<不再需要代码>退出如果您设法按照上述准则重新编写,您可能会发现您的问题更容易发现和修复。再试试看。我想第二次尝试可能会更好。+1是答案,还有一个提示:7。代码的一致缩进将使您更容易阅读并发现问题。(我知道从你的工作区复制/粘贴到SO文本框中可能会很棘手。)+1是答案,还有一个提示:7。代码的一致缩进将使您更容易阅读并发现问题。(我认识到从工作区复制/粘贴到SO文本框中可能很棘手。) PERFORM UNTIL some-condition PERFORM PARA-A PEROFMR PARA-B END-PERFORM