我正在尝试将当前控制台显示输出到TFileOut.da文件。但是,当我尝试写一条记录时,所有数据都输出到同一行。
PROGRAM-ID. TFile.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT myInFile ASSIGN TO "TestFile.dat".
SELECT myOutFile ASSIGN TO "TFileOut.dat".
DATA DIVISION.
FILE SECTION.
FD myInFile.
01 inRecord.
02 StudentName PIC X(15).
02 StudentWNbr PIC X(8).
02 Years PIC X(9).
02 Course PIC X(9).
02 CourseD PIC X(28).
02 Grade PIC X(1).
02 CreditHr PIC 9.
02 FILLER PIC X(1).
FD myOutFile.
01 studentOutRecord.
02 DatFile PIC X(10).
WORKING-STORAGE SECTION.
01 w PIC X(3) VALUE "YES".
01 stor PIC X(9).
PROCEDURE DIVISION.
OPEN INPUT myInFile.
OPEN OUTPUT myOutFile.
PERFORM subRead
PERFORM UNTIL w = "NO"
PERFORM subRead
END-PERFORM.
CLOSE myInFile.
CLOSE myOutFile.
STOP RUN.
subRead.
READ myInFile
AT END
MOVE "NO" TO w
NOT AT END
DISPLAY Course
MOVE Course TO
MOVE Course to DatFile
WRITE studentOutRecord
END-READ.
Run Code Online (Sandbox Code Playgroud)
是输出文件中的输出。CMPS 161数学223数学200历史101数学223数学200历史101 PHYS 101 MUSC 101 PSYC 101 SSYC 101
This is how I get into console.
CMPS 161
MATH 223
MATH 200
HIST 101
MATH 223
MATH 200
HIST 101
PHYS 101
MUSC 101
PSYC 101
SSYC 101
Run Code Online (Sandbox Code Playgroud)
我想显示与控制台相同的输出文件。
小智 5
在FILE-CONTROL中,将组织设置为按顺序排列。
SELECT myInFile ASSIGN TO "TestFile.dat"
organization is line sequential.
SELECT myOutFile ASSIGN TO "TFileOut.dat"
organization is line sequential.
Run Code Online (Sandbox Code Playgroud)
这将使换行符保持完整。
我在Linux下运行GNUCobol,并且不使用行顺序将所有内容打包成一行。