cobol 中读取文件如果文件形式如下: 第一行9(5) 之后每行都是X(6),行数不定该如何读取?? 急求...
展开全部
在大型机数据集中每一行就代表一条记录
那么就可以不用分别读取,并且我还真的没有试过分别读取
先假定你的输入文件记录长度为80
你可以直接把输入文件定义为
FD FILE1
........
.
01 INPUT-REC PIC X(80).
这样读取进来
然后就可以通过
UNSTRING INPUT-REC
DELIMITED BY SPACE
INTO 变量。
这样来实现读取。
而第一行为了转化为数字,可用FUNCTION NUMVAL(变量)
这样把字符形式转化为数字
这样就可可以了
如果还不懂就问吧
补充:数据集长度的大小不确定
在大型机里面数据集是以记录为单位来存放的,一行就是一个记录
如果是定长,比如80,那么在FD 下INPUT-REC PIC X(80)
变长要复杂点
那么不管一行是多少,比如记录长度是80,格式是fb
那么第一行是9(5),就是存放的5个数字
比如 12345----------数字后面就是空格
其他行是X(6)那么
比如ABCDEG------------字符后面也是空格
我们把输入文件对应的记录定义为
INPUT-REC PIC X(80)
那么我们想要取得前面的东西就可以
UNSTRING INPUT-REC
DELIMITED BY SPACE
INTO 变量
要不你把题目描述具体些,写出来,我来把代码写一下
那么就可以不用分别读取,并且我还真的没有试过分别读取
先假定你的输入文件记录长度为80
你可以直接把输入文件定义为
FD FILE1
........
.
01 INPUT-REC PIC X(80).
这样读取进来
然后就可以通过
UNSTRING INPUT-REC
DELIMITED BY SPACE
INTO 变量。
这样来实现读取。
而第一行为了转化为数字,可用FUNCTION NUMVAL(变量)
这样把字符形式转化为数字
这样就可可以了
如果还不懂就问吧
补充:数据集长度的大小不确定
在大型机里面数据集是以记录为单位来存放的,一行就是一个记录
如果是定长,比如80,那么在FD 下INPUT-REC PIC X(80)
变长要复杂点
那么不管一行是多少,比如记录长度是80,格式是fb
那么第一行是9(5),就是存放的5个数字
比如 12345----------数字后面就是空格
其他行是X(6)那么
比如ABCDEG------------字符后面也是空格
我们把输入文件对应的记录定义为
INPUT-REC PIC X(80)
那么我们想要取得前面的东西就可以
UNSTRING INPUT-REC
DELIMITED BY SPACE
INTO 变量
要不你把题目描述具体些,写出来,我来把代码写一下
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询