写入具有不同行或记录的顺序文件

  • 本文关键字:记录 顺序文件 file-io cobol
  • 更新时间 :
  • 英文 :


假设我想将以下内容写入顺序输出 txt 文件。

!---!  
This is a report!  
!---!  
Here is the list of records:   
001 Jack  
002 Alice  
!---!  
Number of crimes:   
Jack: 01  
Alice: 02

问题是,当我定义顺序输出文件及其内容时,我不知道应该如何定义所有这些不同类型的行。 例如,!---!必须像一个常量值,而001 Jack应该写成:

FD OUTPUT-FILE.  
    01 PERSON-RECORD.
        05 ID PIC 999.
        05 NAME PIC X(10).

另一方面,"Number of crimes:"之后应该有记录:

01 CRIMES.
    05 NAME PIC X.
    05 NO-OF-CRIME PIC 99.

但是如果我在同一FD下写入01 PERSON-RECORD.01 CRIMES.,那么在尝试写入输出文件时会遇到问题。CRIMES的值实际上变为PERSON-RECORD的值。

有什么想法吗?

有什么想法吗?

FILE-CONTROL使用ORGANIZATION LINE SEQUENTIAL .

DATA DIVISION.使用中,

FILE SECTION.
FD OUTPUT-FILE.
01 OUTPUT-RECORD PIC X(80).
WORKING-STORAGE SECTION.
01 CONSTANT-TEXT-1 PIC X(5) VALUE "!---!".
01 CONSTANT-TEXT-2 PIC X(17) VALUE "This is a report!"
01 CONSTANT-TEXT-3 PIC X(28) VALUE "Here is the list of records:"
01 CONSTANT-TEXT-4 PIC X(17) VALUE "Number of crimes:".
01 PERSON-RECORD.
    05 ID PIC 999.
    05 NAME PIC X(10).
01 CRIMES.
    05 NAME PIC X.
    05 NO-OF-CRIME PIC 99.

PROCEDURE DIVISION中,对于WRITE语句使用,

WRITE OUTPUT-RECORD FROM CONSTANT-TEXT-1
WRITE OUTPUT-RECORD FROM CONSTANT-TEXT-2
WRITE OUTPUT-RECORD FROM CONSTANT-TEXT-3
WRITE OUTPUT-RECORD FROM CONSTANT-TEXT-4
WRITE OUTPUT-RECORD FROM PERSON-RECORD
WRITE OUTPUT-RECORD FROM CRIMES

无论按照何种顺序生成报告。

您不需要使用 CONSTANT-TEXT ,使用任何对程序有意义的名称。

最新更新