逐行读取cobol文件由新行字符分隔

时间:2018-03-23 08:00:05

标签: cobol

我无法逐行阅读文件。这是代码的当前片段:

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

1 个答案:

答案 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