使用不同类型的行或记录写入顺序文件
Writing sequential files with different kinds of lines or records
假设我想将以下内容写入顺序输出 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
的值。
有什么想法吗?
Any ideas?
在 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
,使用任何对程序有意义的名称。
假设我想将以下内容写入顺序输出 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
的值。
有什么想法吗?
Any ideas?
在 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
,使用任何对程序有意义的名称。