【发布时间】:2021-01-04 19:19:06
【问题描述】:
嘿,伙计们,我整天都在为此挠头,但无济于事。我正在运行一个 COBOl 程序,该程序 应该 从一个文件中获取输入,并在满足某些条件时将其输出到另一个文件。
这是PROCEDURE DIVISION.
PROCEDURE DIVISION.
*
A000-START.
OPEN INPUT CUST-RECS.
OPEN OUTPUT ACCT-RPT.
PERFORM A000-WRITE-FIRST.
PERFORM READ-NEXT-RECORD.
* PERFORM WRITE-RECORD.
CLOSE ACCT-RPT.
CLOSE CUST-RECS.
STOP RUN.
*
A000-WRITE-FIRST.
DISPLAY "WRITE-FIRST".
MOVE 2 TO REC-COUNT.
WRITE PRT-REP-DONE FROM HEADER-1.
WRITE PRT-REP-DONE FROM HEADER-2.
WRITE PRT-REP-DONE FROM HEADER-3.
WRITE PRT-REP-DONE FROM HEADER-4.
*
READ-NEXT-RECORD.
PERFORM READ-RECORD
PERFORM UNTIL LASTREC = 'Y'
PERFORM WRITE-RECORD
PERFORM READ-RECORD
END-PERFORM.
*
WRITE-RECORD.
DISPLAY "WRITE-RECORD called" FIRST-NAME.
MOVE SPACES TO PRT-REP-DONE.
MOVE REC-COUNT TO PRT-RECS.
MOVE FIRST-NAME TO PRT-NAME-FST.
MOVE LAST-NAME TO PRT-NAME-LST.
MOVE BALANCE TO PRT-BALANCE.
WRITE PRT-REP-DONE.
CLOSE ACCT-RPT.
READ-RECORD.
READ CUST-RECS
AT END MOVE 'Y' TO LASTREC
IF (FUNCTION NUMVAL-C(BALANCE) IS > 8500000)
THEN
DISPLAY "BALANCE: " BALANCE
ADD 1 TO REC-COUNT
PERFORM WRITE-RECORD
END-IF
END-READ.
在我的输出文件中,我只得到 1 个空行。以及 SB14 的 ABEND 代码。我之前能够得到一些输出,但现在什么也没有。
【问题讨论】:
-
根据
sb14的描述,要么是输出PDS没有空格,要么是Directory没有空格。看看输出文件,如果是 PDS,我建议压缩它。如果您使用 PDS 作为输出,则需要定期对其进行压缩以回收未使用的空间。见ibmmainframes.com/about23872.html