cobol用到一个硬盘上的文件例如“c:\1.txt”,求JCL部分要怎么写,才可以使cobol打开文件
刚学cobol,其实就是打开一个顺序文件,一个索引文件,不过书上不怎么讲JCL编译的部分,要是直接在cobol程序中用外部文件似乎会打不开,...
刚学cobol,其实就是打开一个顺序文件,一个索引文件,不过书上不怎么讲JCL编译的部分,要是直接在cobol程序中用外部文件似乎会打不开,
展开
2个回答
展开全部
(1)首先,cobol程序可以跳开JCL,直接在cobol程序中直接指定外部文件(当然、大型开发没有这么做的),例:
环境(ENVIRONMENT)部、INPUT-OUTPUT节、FILE-CONTROL段:
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FILE001
ASSIGN TO 'c:\1.txt'
ORGANIZATION IS LINE SEQUENTIAL
FILE STATUS IS .......(后面的内容省略)
其中“FILE001”为文件标识(也就是FD定义中,和过程部OPEN/READ/CLOSE语句中的文件名).
ASSIGN TO 子句直接指定文件,不需要JCL。
(2)如果想通过JCL指定,则程序里面,ASSIGN TO 子句如下(其他不用动):
ASSIGN TO SYS100
其中“SYS100”被称为外部装置名(或者称之为“DD名”),
这样,程序内部没有直接指定外部文件的位置和名称,
只是将其和外部装置名SYS100联系到了一起。JCL中指定如下:
SET CBL_SYS100=c:\1.txt
注意,JCL里面(也就是环境变数设定时)环境变数名是CBL_XXXX的形式,
XXX部分是程序中的外部装置名。
环境(ENVIRONMENT)部、INPUT-OUTPUT节、FILE-CONTROL段:
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FILE001
ASSIGN TO 'c:\1.txt'
ORGANIZATION IS LINE SEQUENTIAL
FILE STATUS IS .......(后面的内容省略)
其中“FILE001”为文件标识(也就是FD定义中,和过程部OPEN/READ/CLOSE语句中的文件名).
ASSIGN TO 子句直接指定文件,不需要JCL。
(2)如果想通过JCL指定,则程序里面,ASSIGN TO 子句如下(其他不用动):
ASSIGN TO SYS100
其中“SYS100”被称为外部装置名(或者称之为“DD名”),
这样,程序内部没有直接指定外部文件的位置和名称,
只是将其和外部装置名SYS100联系到了一起。JCL中指定如下:
SET CBL_SYS100=c:\1.txt
注意,JCL里面(也就是环境变数设定时)环境变数名是CBL_XXXX的形式,
XXX部分是程序中的外部装置名。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询