我无法逐行阅读文件。这是代码的当前片段:
file-control.
select input-file
assign input-file-name
organization is sequential
file section.
fd input-file.
01 input-file-record picturex(25)
working-storage section.
01 ws-eof picture a(1).
以及我实际在文件中读到的地方:
perform until ws-eof = 'Y'
read input-file into input-file-record
at end move 'Y' to ws-eof
not at end
display input-file-record
end-read
end-perform
close input-file
问题是,我试图逐行读取文件,但似乎它只填充了25个字符,然后再次读取而不是通过文本文件中的返回字符循环
文本文件如下所示:
AAAA
BBBB
CCCC
DDDD
答案 0 :(得分:1)
问题是,我试图逐行读取文件,但似乎它只填充了25个字符,然后再次读取而不是通过文本文件中的返回字符循环
系统完全按照你的要求去做:
organization is sequential *> sequential, fixed length
01 input-file-record picture x(25) *> the fixed length is 25 bytes
根据您使用的编译器(如果您已经可以使用它的特定标签,那么指定它是一个好主意,即使在这种情况下,版本号永远不会受到伤害)您可以使用公共扩展(可能甚至可以使用COBOL 202x标准化):
organization is line sequential *> sequential, read until line break found
或者必须按顺序读取它(在这种情况下可能是更大的尺寸)和
检查file-rec转换所有x' 0d'由x' 0a' * GT;如果你期望windows或mac换行符 移动1到strpoint unstring file-rec 由所有x' 0a'分隔 进入真实的 用指针strpoint 最终unstring