GB/T 4092.4-1992
标准分类号
标准ICS号:信息技术、办公机械设备>>35.060信息技术用语言
中标分类号:电子元器件与信息技术>>信息处理技术>>L74程序语言
相关单位信息
首发日期:1983-12-26
复审日期:2004-10-14
起草单位:南京大学
归口单位:全国信息技术标准化技术委员会
发布部门:国家技术监督局
主管部门:国家标准化管理委员会
标准简介
GB/T 4092.4-1992 程序设计语言COBOL 顺序I-O模块 GB/T4092.4-1992 标准下载解压密码:www.bzxz.net
标准内容
中华人民共和国国家标准
程序设计语言LOBOL
顺序1-0模块
Programming language COBOL
Sequential [-O module
GB/T4092.4—92
代督GB4092.4—83
1.1功能
顺序10模块提供按建立的顺序存取文卷记录的功能。这个顺序是出把记录写到文卷上而建立的。1.2级别特征
对文卷控制款、文卷描述款及I-O-CONTROI.段中的各款,1级顺序I-提供局部功能。在过程部中对 CLOSE、OPEN、READ、USE和 WRITE语何,1级顺序 I-C 提供了局部功能,而对 READ 和REWRITE语句提供T完整功能
2级顺序I-O对文卷控制款,文卷描述款及I-O-CONTROL段中各款,提供了完整功能。在过程部中,2级顺序I-O对CLOSE、OPEN.READ、REWRITE、USE和WRITE语句提供了完整功能。1.3语言概念
1.3.1组织
顺序文卷是这样组织的,文卷中的每一个记录除最后一个记录外,有唯一的后继记录,并且除第一个记录外,每个记录有唯一的先行记录,这些先行后继关系是在文卷建立时按WRITI语句的次序建立的。一且建立了这种先行后继关系,便不能改变但在文卷的末尾增加记录时却除外。顺序组织的大容量存储文卷与任意顺序媒体上的文卷具有相同的逻辑结构;但是,一-个顺序大容量存储文卷可能会适当地更政。当使用这种技术时,不能往文卷添加新记录且每个被誉换的记录须与原记录长度相同。
1.3.2存取方式
在颁序存取方式中,存取记录的次序就是原来将记录写到文卷上的次序。1.3.3当前登指针
当前卷指针是在本标准中为了便于确切指明顺序文卷当前的物理卷而使用的概念实体。当前卷指针的状态受到CLOSE,OPEN、REAI)和WRITE诸语司的影响。1.3.4文卷位置指示符
文签位置指示符是在本标准中为了便于在某一输人输山操作中确切指明给定的文举中要存取的下一个记录而使用的概念实。文卷位置指示符的所置值仅受CLOSEUPEN和READ语句的影响。对于按输出方式或扩展方式打开的文卷,文卷位置指示符的概念是无意义的。1.3.51-0状态
I-O状态是两字符的概念实体,赋给它的值指明了CIOSE、OPEN、READ、REWRITE或WRITE语句执行期间的状态,指明了与该1I-○句相联系的任一-命令语句执行之前的状态,或任一可用的USEAFTER STANDARDEXCEPTION过程树行之前的状态。在COBOL程序中,通过文卷的文卷国家技术监督局1992-08-04批准1993-05-01实施
GB/T4D92.4—92
控制款中使用 FILE STATUS子句来使用1-O状态的值。I-O状态还决定是否执行一可用的USEAFTERSTANDARDEXCEPTION过程。如果出现的条件不是标题为“成功的结束\之下包含的那些条件,则这样的过程就根据其它地方叙述的规则执行。如果出现的条件是在标题为“成功的结束”之下包含的那些条件,则不执行这样的过程(见4.6USE语句)。某些类的1-0状态值指出关键错误条件。它们是:以数字3或4和任何由实现者作为关键定义的以数字9开始的错误条件。如果输入输出操作的I-0状态值指明了这样的错误条件,那么实现者确定在执行任何可用的USEAFTERSTANDARDEXCEPTION过程之后所要采取的动作,若没有可用的上述过程,则实现者确定输入输出控制系统错误标准处理之后采取什么动作。I-{)状态根据输入输出操作完成的情况表示下列条件之一:(1)成功的结束。成功地执行了输人输出语句。(2)到末端。由于满足了末端条件,顺序的READ语句执行不成功。(3)水久性错误。由于发生了阻止文卷的进一步处理的错误,输入输出语句执行不成功。执行任何指定的例外过程。如果设有调用实现者定义的技术来改正永久性错误条件,则在余下的输入输出操作中该条件一直有效。
(4)逻辑错误。由于对文卷执行了一系列不适当的箍入输出操作或违反了用户定义的限制而使输入输出语句的执行不成功。
(5)实现者定义。由于满足了实现者定义的某条件,致使输入输出语句执行不成功。下面列出上述条件的I-0状态值,这些条件是在对-顺序文卷进行输入输出操作之后产生的。如果不只一个值适用:出实现者确定往I-O状态中受人哪一个可用的值。(1)成功的结束
。1-0状态=00。成功地执行了输入输出语句,对有关输入输出操作没有进一步的信息可用。b,I-O状态=14。成功地执行了READ语句,但当前处理的记录其长度与相应文卷的固有屑性不一致。
cI-O状态一05。成功地执行了OPEN请句,但在OPEN执行时.引用到的任选文卷没有出现。如果打开方式是1-0或延伸方式,则文卷已被建立。d,1-O状态=07。成功地执行了输入输出语句,可悬,对于带有NOREWINDREEL/UNIT或FORREMOVAI.短语的CLOSE语句或对于带有NOREWIND短语的OPEN语句,被引用的文卷位于非/单元媒体上。
(2)不成功结束的末端条件
a。1-0状态=10。顺序READ语句正在执行时,由于下列原因下一个逐辑记录不存在1)已达到文卷未端:或
2)在一个不出现的任选输人文卷上第一次试图执行顺序READ语句。3)不成功结束的永久性错误条件a.:1-0状态=30。存在一永久性错误,并且没有和输人输出操作有关的进一步可用信息。b.I-0状态=34。由于边界不合法而山现的水久性错误试图在顺序文卷的外部定义边界之外写内容。实现者指定这些边界的定义方式。:I-状态一35。如果对一非任选的文执行带有INPUT、I-O或EXTEND短语的OPEN语句而该文卷不存忙,则出现…永久性错误。d.I-O状态=37。由于OPEN语句要对文卷操作,而该文卷不支持OPEN语句中指定的打开方式,故产生永久性错误。可能的出错情形是,1)指定了EXTEND或OUTPUT短语但文卷不支持写操作。2)指定了1-0短语但文卷并不支持以1-0方式打开的顺序文替所允许的输入输出操作。GB/T 4092: 4—92
3)指定了INPUT短语,但文卷不支持读操作。e.1-0状态=38。由手OPEN语句试图对已被带锁地关阅的文卷进行操作而产生永久性错误。r.I-0状态一3。由于在固有文卷属性和程序中为文卷规定的性之间检测出相互冲突的地方,故 OPEN不成功。
(4)不成功结束的逻辑错误条件。1-O状态一41。试图对在打开方式下的文卷执行OPEN语句。b,I-O状态=42。试图对在不在打开方式下的文卷执行CLOSE语句。cI-O状态=43。对在顺序存取方式下的大容量存储文卷,在执行REWRITE语句之前为相关文卷执行的最后一条输入输出语句不是成功执行的READ语句。d.I-0状态=44。由于下列原因出现边界不合法1)试图写或重写的记录,其长度比相关文卷名的RECORDISVARYING字句中允诈的最大长度要大,惑比充许的最小长度要小。2)试图对一顺序文卷重写记录,而该记录长度与被替代的长度不等,I-O状态=46。试图对以输入输出方式或I-O方式打开的文卷执行顺序READ语句并且由于e.
下列原因还末建立有效的下一记录:1)前面的READ语句不成功但并不产生末端条件,或2)前面的READ语何产生末端条件。f。I-O状态=47。试图对不是以输入方式或I-O方式打开的文卷执行READ语句。.g。I-O状态=48。试图对不是以输出或扩展方式打开的文卷执行WRITE语句。h.I-O状态49。试图对不是以1-O方式打开的文卷执行REWRITE语句;(5)实现者定义的不成功结束条件。:I-O状态=9x。存在实现者定义条件。该条件不能与1-0状态值00到49的任何一个条件重复。×的值由实现者定义。
1.3.6末端条件
末瓣条件能作为执行READ语句的结果出现(见4.4READ语句)。1.3.7文卷属性冲突茶件
执行一条OPEN、REWRITE或WRITE语句之后,可能会产生文卷属性冲突条件。当文卷属性冲突条件发生时,则识别出这个条件的输入输出语句执行不成功而文卷并不受影响(见1.30PEN语句:4.5REWRITE语句以及4.7WRITE语句。识别出文卷属性冲突条件之后,这些动作按下列顺序进行:(1)对与文卷名相关联的I-0状态赋值以指明文卷属性冲突条件(见1.3.51-0状态)。(2)执行与文卷名相关联的USEAFTEREXCEPTION过程(如果有的话)。1.3.8专用寄存器LINAGE-COUNTER保留字LINAGE-COUNTER是在文卷描述款中出现LINAGE子句时,所产生的-千行数计数器的名(见3.7LINAGE子句)。隐含描述一个无正负号整数,它的大小等于LINAGE子句中整数1的大小或由数据名1引用的数据项的大小。LINAGE-COUNTER只能在过程部的语句中引用,可是,只有输入输出控制系统才能改变LINAGE-COUNTER的值。2顺序1-0模块的环塘部
2.1输入输出节
输入输出节位于源程序的环境部中。输入输出节涉及的信息是控制外部媒体与目标程序之间的数据传送和数据处理所需的信息。输入输出节在COBOL源程序的环境部中是任选的。输入输出节的·般格式如下所示:GB/T4092.4—92
INPUT-OUTPUTSECTION
FILE-CONTROL..文卷控制款}
[I-O-CONTROL.输人输出控制款I2.2 FILE-CONTROI.段
2.2.1功能
FILE-C)NTROL段充许指期和文卷树关联的信息。2.2.2 一般格式
FILE-CO)NTROL.{义卷控制款
2.3文卷控制款
2.3.1 功能
文卷控制款描述顺序文恶的有关物理属性。2.3.2-般格式
SELECT[OPTIONAL]』] 文卷名1
实现名1
字值1
RESERVF整数1
ASSIGN TO
[LORGANIZATION ISISEQUENTIAL]【数据名1]
PADDINGCHARACTERIS
字值2
RECORDDELIMITERIS
STANDARD-1
实现名2
[ACCESS MODE IS SEQUENTIAL.][FILESTATUSIS数据名21
2.3. 3语法规则
(1)在文卷控制款中必须首先指出SELECT子句,接在SEI.FCT子句后的各个子句可以按任何次序出现,
(2)在数据部中描述的每一个文卷名在FTLE-CONTRCOI.段中必须口只能命名--次,在SELECT子句中描述的每一个文卷名在数据部中必须有“个文卷描述款。(3)字值1必须是非数值字值且不能是象征常单。实现名1允许的内容的含义和规则以及字值1的值由实现者定义。
2. 3. 4一般规则
.(1)如果文卷名1引用的文卷连接符是外部文卷连按符(见GB/T4092.12中4.5EXTERNAL子句).则运行单位中引用该文卷连接衍的所有文卷控制款必须:a.对OPTIONAI.短语有同样说明。对ASSIGN子句中实现名1或字值1具有一致的说明。实现者对实现名1或字值1指定一致h
规则。
E.对RECXORI)DELIMITER了句中的实现名2具有一致说明。实现者指定实现名2的一致规则。
对RESERVE子句中的整数「有同样的值。d.
同伴的组织。
f.同样的存取方式。
GB/T 4092. 4-92
g对PADDINGCHARACTER子句有同样说明。(2)OPTIONA1短语只对以输入、I-0或扩展方式打开的文卷适用。对于日标程序每--次运行时并不都要眉到的文卷来说,该短语是必需的。(3)ASSIGN子句指明「文卷名1引用的文卷与实现名1或字值1引用的存储媒体之间的联系。(A) ACCESS MODE 子勺),FILE STATT:S 了句,ORGANIZATION IS SEQUENTIAL 子句【PADDINGCIIARACTER子、RECORDDELIMITER句和RESERVE子句包按字母顺序依次列出。
2.4 ACCESS MODF 子句
2.4.1功能
ACCESSM()DE子句指明文卷中记录的存取次序。2.4.2一般格戏
ACCESSMODEISSEQUENTIAL
2.4.3一般规则
(1)如果未指定ACCESS MODE子句,就假定是顺序方式(2)山文卷纽织指出文卷中记录的存取顺序。对于顺序文卷而言,这个顺序是由先行后继记录关系所确定的,而该关系又是在文卷产生或扩展时由WRITE语句所建立的。(3)如果相关联的文卷连接符是外部文卷连接符,则与运行单位中该文卷连接符相关的每个文卷控制描述款必须指定为同存取方式。2.5FILESTATUS子句
2.5.1功能
FILE STATUS子句指定:·个包含输入输出状态的数据项。2.5. 2 一般格式
FILE STATLS IS 数据名1
2.5.3语法舰则
(1) 数据名1可以受限。
(2)数据名1必须在数据部中定义为字符类型的两字符数据项,H不能在FILE节、REPORT节或COMMUNICATION 节中定义。
2.5.4一般规则
(1)如果指定了 FILE STATUS子句,则- I-O状态攻变,数据名 1引用的数据项之值也跟着改变以包含1.0 状态之值。该值指明了该语句执行之后的状态(见1.3. 51 0状态)。(2)数据名1引用的数据项在执行一条输人输出语句时政变,它是在该语句有关的文卷控制描述款中指定的。
2.6ORGANIZATION IS SEQUENTIAI.子句2.6.1功能
(ORGANIZATK)NISSEQUENTIAI.子句把文卷的逻辑结构指定为顺序组织。2. 6. 2一般格式
IORGANIZATION IST SEQUENTIAL2.6.3一般规则
(1)DRGANIZATIONISSEQLIENTIAI.子句指定文卷逻辑结构为顺序组织。文卷组织作文卷产生时建立且不可更改。
(2)顺序组织是文卷的永久的逻辑结构,通过先行后继关系米标识-一个记录在该逻辑结构中的位GB/ 4092.4—92
置,这个先行后继关系是在记录被置入文中时建立的。(3)如果ORGANIZATIONISSEQUENTIAL未指定,就隐含了顺序组织2.7PADDINGCHARACTER子句
2.7.1功能
PADDINGCHARACTER子句指定顺序文卷填充块中使用的字符。2.7.2一般格式
PADDINGCHARACTER IS
2.7.3语法规则
【数据名1]
(字值1
(1)字值1必须是非字值的单字符字值:(2)数据名1可以受限:
(3)数据名 1 在数据部中必须定义为字符类型的单字符数据项,并且不能在 COMMUNICATION 节、FILE 节或REPORT 节中定义。2.7.4—般规则
(1)PADDING CHARACTER 子句指明顺序文卷的填充块中使用的字符。在输入操作期间,任超过最后逐辑记录的块或全出填充符组成的块将被全部跳过。在输入操作期间,仅由填充符组成的辑记录将被跳过。在输出操作期间,任何超过最后的逻辑记录的块中所有部分都填以填充符。(2)如果PADDINGCHARACTER子句对分配给文卷的设备类型不适用,就不产生或不识别填充符。
(3)字值1或数据名1引用的数据项,在产生文卷的OPEN语句执行期间,用作填充符。填充符是文卷的固定属性。
(4)如果对文卷指定了CODE-SET子句,在文打开时,对字值1或数据名1的内容所指定的填充符进行转换。
(5)如果未指定PADDINGCHARACTER子句,用作填充符的值将由实现者来定义。(6)如果相关的文卷连接符是外部文卷连接符,则在运行单位中与该文卷连接符有关的所有PADDINGCHARACTER子句具有相同的说明。如果指定了数据名1,它必须引用一-外部数据项。2.8 RECORD DELIMITER 子
2.8.1功能
RECORDDELIMITER子句指明了在外部媒体上确定变长记录长度的方式。2.8.2一般格式
RECORD DELIMITER IS
[STADNARD-1
【实现名1
2.8.3语法规则
GB/T 4092.4 --92
(1)RECORDDELIMITER子句只能对变长记录指定。(2)如果指定了 STANDARD-1短语,外部媒体必须是磁带文卷。2.8.4一般规则
(1)RECORDDELIMITER了句用来指明确定外部媒体上变长记录长度的方法。使用的任何方法都不反映程序中用到的记录区或记录的大小。(2)如果指定了STANDARD-1短语.则确定变长记录长度的就按GB7574《信息处理交换用磁带标号和文卷结构\中说明的方法。(3)如果指定实现名1短语,则确定变长记录长度的方法与实现者定义的实现名1有关。(4)如果未指定RECORDDELIMITER子句,测确定变长记录长度的方法由实现者指定。(5)OPEN语句成功地执行后,记录定界符就是在与OPEN语句中指定的文卷名有关的文卷控制描述款的RECORIDDELIMITER子句中指定的定界符。(6)如果相关的文卷连接符是外部文誉连接符,则运行单位中与该文卷连接符相关的所有RECORDDELIMITER子句必须具有相同的描述。2.9RESERVE子句
2.9.1功能
RESERVE子句允许用户指定分配的輪入输出区的数自。2.9.2一般格式
┌ARFA
RESERVE整数1
2.9.3一般规则
(I)RFSERVE子句允许用户指定分配的输入输出存区的数国。如果指定了RESERVE子句,分配的输入输出的存区数目就等于整数1,如果未指定RESERVE子句.分配的输入输出存区的数目由实现者指定。
2.10I-O-CONTROL段
2. 10.1功能
I-O-CONTROL段指明了重运行的建立点,由不同文卷共享的存储区及在多文卷卷上各文卷的位置,在标准COBOL的这一版本中视I-O-CONTROL段的RERUN子句和MULTIPLEFILETAPE了句是过时成分,因为在标准COBOL的以后的修改版中要把它删掉。2.10.2殿格式
I O-CONTROL
1文卷名1
F[RERUNON,
实现名
EEND OF
[UNIT』OF 文卷名2
整数 1 RECORDS
i整数2 CLOCK-UNITS
条件名】
[SAMERECORD]]AREAFOR文卷名3(文卷名4)-..[MULTIPLEFILETAPECONTAINSI文卷名5[POSITION整数3]]]
2.10. 3语法规则
(1)子句出现的次序光关紧要。2-10.4---般规则
GB/T4092.4—92
(1)MULTIPLEFILETAPE子句RERUN子句和SAME了句按字母顺序列出。2.11MULTIPLEFILETAPE子句
2.11.1功能
MULTIPLEFI.ETAPE了句指定了文卷在多文卷卷上的位置。在标准C>ROT.这版本中视MULTIPLEFILETAPE子句是过时成分,因为在标准COBOL的以后的修议版中要把它删掉。2-11-2-股格式
MULTIPLE FILE TAPE CONTAINS(文卷名1[POSITION整数1J·.-2. 11. 3 一般规则
(1)当多于个文卷共享同一物理带卷时,MULTIPLEFILETAPE子句就是必需的。只有那些用在目标程序中的文卷需要指定,而不考虑单卷上文卷的数目。如果所有文卷名都连续地列出就不必再给出POSITION短语。如果文卷序列中有一个未列出,就必须给出带的初始位置。在同·带卷上每秋只能打开一个文卷。
2.12RERUN+句
RERUN子句指明重运行的建立点。在标准COBOL的这一版本中视RERLN子句是过时成分,因为在标准COBOL的以后的修改版中要把它掉。2.12.1—般格式
[ENDOF
【文卷名11-
RERUNN
整数】
!实现名11
RECORDS
整数 2 CLOCK-UNITS
【条件名1
2.12.2语法规刻
(1)文卷名1必须是顺序组织的文卷。OF文卷名2
(2)只有当文卷名2是一顺序组织的文卷时,才能使用ENDOFREEL/UNIT短语。由实现者确定UNIT的定义。
(3)当整数1RECORDS短语或整数2CLOCK-UNITS短语指定时,实现名1必须在RERUN子句中给山。
(4)对于给定的文签名2,可以指定多个RERUN子句,其限制条件如下:当指定多个整数1RECORDS短语时,其中不能有两个短语指定同一个文卷名2。a
h.当指定多个END.OFUNIT短语时,其中不能有两个短语指定同-文卷名2。(5)只能指定一个带有CLOCK-UNITS短语的RERUN子句。2.12.3—般规则
(1)RERUN子句指明了在何时及何处记录下重运行的信息。按下列方式记录重运行信息,如果指定文卷名1,就把重运行信息写在每一卷或输山文卷的单位上,实现者指明在卷上或文a.
卷中何处记录重运行信息。
b。如果指定实现名,则把重运行信息写在实现者指定的设备上的独立文卷中。(2)根据建立重运行点的不同条件,RERUV子句可分为七类。实现者必须至少提供类RERUNGB/T 4092.492
子句。
a。当使用END OF REEL或ENI) OF UNIT短语而又不带ON短语时。在这种情况下重运行信息要写在文卷名2上,且文卷名2必须是一输出文卷。b.:当使用ENDOFREEL或ENDOFUNIT短语在ON短语中指定丁文卷名1。在这种情况下,重运行信息写在文卷名1中,月文卷名1必须是输出文卷。此外,执行对文卷名2的标准卷单位关闭功能。文卷名2可为·输入文卷或输出文卷。C.当使用ENDOFREEL或ENDOFUNIT短语且ON短语中指定了实现名时。在这种情况下,重运行信息写在实现者定义的独立的重运行单位上。文卷名2可以是输入文卷也可以是输出文卷。d、当使用整数1RE(ORDS短语时。在这种情况下,一且文卷名2的整数1个记录处理完后,就把重运行信息写在实现名1指定的设备上,这个实现名1须在ON短语中指定。文卷名2可以是输入文卷也可以是输出文卷,组织及存取方式不限。当使用整数2CLOCK-UNITS短语时。在这种情况下,一且由内部时钟计数的一段时间过后,e.
就把重运行信息写在实现名1指定的设备上,这个实现名1须在ON短语中指定。f.当使用条件名短语且实现名1在ON短讲中指定时。在这种情况下,一旦一个开关具有了条件名1指定的特定的状态,就把重运行信意写在实现名1指定的设备上。在这种情况下,有关的开关必须在环境部配骨节的SPECLAL-NAMES段中定义。实现者指定何时检测开关状态。g:当使用条件名1短语且ON短语中指定文卷名1时。在这种情下,一且个开关具有了条件名1指定的特定状态,就把重运行信息写在文卷名1上,且文卷名1必须是输出文卷。在这种情况下,和f中一样,相关的开关必须在环境部配暨节的SPECIAL-NAMES段中定义。实现者指定何时检测开关状态。
2.13SAME子句
2.13.1功能
SAME子句指定由不同文卷共享的存储区。2.13.2.一般格式
SAME[RECORDAREAFOR文巷名1(文卷名2}2.13.3语法规则
(1)文卷名1和文卷名2必须在同一程序的FILE-CONTROL段中指定。(2)文卷名1和:文卷名2不能引用外部文卷连接符。(3)程序中可以出现多个SAME子句,但有下列限制:同一文卷名不能出现在多个SAMEAREAa
b、同-·文卷名不能出现在多个SAMERECORDAREA子句中。C,如果SAMEAREA子句中的一个或多个文卷名出现在SAMERECORDAREA了句中,则该SAMEAREA子句中所有文卷名都要出现在SAMERECORDAREA子句中。但是,不出现在SAMEAREA子句中的附加文卷名也可以出现在SAMERECORDAREA子句中。“SAMEAREA子句中在任一给定时刻!有一个文卷名能打F\这一规则,比\SAMERECORDAREA子句中所右文卷在任一时刻都能打开”这一规则的优先级要高。(4)SAMEAREA或SAMERECORDAREA子句中引用的文卷不必都具有同样的组织或存取方式。
2.13.4一般规则
(1)SAMEAREA子句指明了由文卷名1和文卷名2引用的两个或多个文卷在处理时要用到同一存储区,其中文卷名1和文卷名2都不代表排序或合并文卷。共享的区域包括分配给文卷名1和文卷名2引用的文卷的所有存区;因此,在同一时刻不可能有多个这样的文卷处于打开方式(见上述语法规:则3e)。
GB/T 4092.4—92
(2)SAMERECORDAREA子句指明了由文卷名1和文卷名2引用的两个或多个文卷在处理当前逻辑记录时要用到同存区。所有这些文卷可以同时处于打开方式。SAMERECORDAREA中的逻辑记录被认为是在该SAMERECORDAREA子句中出现的以输出方式打开的文卷的逻辑记录,还被以为是在该SAMERECORDAREA子句中出现的以输入方式打开的最近读的文卷的避辑记录。这等价于存区的隐含重定义,即记录以最左字符位置对齐,3腰序 1-0 模块的数据部
3.1文节
文卷节位于源程序的数据部。文卷节定义数据文卷的结构。每个文卷都通过·文卷描述款和-个或多个记录描述款来定义。记录描述款跟着文卷描述款之后。顺序I-O模块中文举节的一般格式如下:FILE SECTION.
[文卷描述款
{记录描述款}
3.1.1文卷描述款
在COBOL程序中,文卷描述款(FD)表示文卷节中的最高组织,文卷节首后接一个文卷描述款,i文卷描述款由层指示符(FD),文卷名和一系列独立的子句组成。FD子句指明逻辑记录和物理记录的大小,标号记录是否存在·由实现者定义的标号项的值.组成文卷的数据记录名,以及到逻辑打印的一负:的行号。这个描述款用句号结束。3.1.2记录描述结构
记录描述由·组数据描述款组成,它们撞述特定记录的特征。每个数据描述款由·个层号后前·接有一个数据名(如果需要的话),及一系列所需要的独立子句所组成。记录描述具有层次结构,科此和一个描述款一起使用的这些子们可能有很大差别,这依赖丁它后面是否接有下属愿次的款。记录狒述的结构以及记录描述款中允许出现的成分是在“层的概念”及数据描述款中说明的。数据描述款中特定的子引的可用性是由实现中支持的核心模块的级别来决定的。3.1.3初值
文卷节中数据项的初值是未定义的。3.2文卷描述款
3.2.1功能
文卷描述款提供关于一个顺序文卷的物理结构标识和记录名的信息。3.2.2一般格式
FD 文卷名 1
RECORDS
BLOCKCONTAINS[整数1TOJ整数2ICHARACTERS
[CONTAINS整数3CHARACTERS
RECORD
ISVARYINGINSIZEL[FROM整数4JTO整数5JCHARATERS][DEPENDINGON数据名1]
(CONTAINS整数6TO望
整数7CHARACTERS
[I.ABEL RECORD IS
[STANDARD]
[RECORDS AREJ[OMITTED
[VAL.UE(F实现名1IS[数据名]]【字值1
RECORDIS
GB/T 4092.4—92
1数据名3%
RECORDS ARE!
LINAGE IS 数据名 4|LINESWITH[整数8]
FOOTING AT[数据名 51[LINES AT TOF整数9
[LINESATBOTTOM/数据名7)
【数据名6免费标准bzxz.net
[整数10
[CODE-SETIS字母表名1]
3.2.3语法规则
[整数 11
(1)层指示符FD标识文卷描述的开始·而且必须位于文卷名1前面。(2)接在文卷名1后的子句出现次序是任意的。(3)在文卷描述款后必须接有一个或多个记录描述款。3.2.4-般规则
(1)文卷捕述款使文卷名1与·不文卷连接符相联系。(2)BLOCKCONTAINS子句、CODE-SET子句,DATARECORDS子句,LABELRECORDS子句LINAGE子句、RECORD子句及VALUEOF子句按字母顺序依次列出。3.3BLOCKCONTAINS子句
3.3.1功能
BLOCK CONTAINS子句指明物理记录的大小。3.3.2一般格式
RECORDS
BLOCK CONTAINS E整数 1 TO]整数 2CHARACTERS
3.3.3-般规则
(1)除了下列情形外,这个子句总是需要的:a.
一个物理记录包含而且仅包含一个完整的逻辑记录。分配给这个文卷的硬设备有且仅有一个物理记录大小。块中包含的记录数目在操作环境中指明。(2)物理记录的大小可以用记录数来表明。但在下列情形中,一定不能使用RECORDS短语。a
在海量存储文卷中,逻辑记录可以跨物理记录。物理记录包含填补区(不包含在逻辑记录中的区)。b.
逻辑记录的组合使得隐含··个不精确的物理记录大小。(3)当指明字CHARACTERS时,物理记录大小是用存储该物理记录所需的字符位置数来指出,需不考虑表示物理记录的数据项所使用的字符类型。(4)如果未指定整数1]整数2代表物理记录的精确长度。如果整数1和整数2都指定了,它们就分别代表物埋记录的最小长度和最大长度。(5)如果相关的文卷连接符是外部文卷连接符,在运行单位中与该文卷连接符相关的所有BLOCKCONTAINS 子句中的整数 1 和整数 2 具有相同的值。3.4 CODE-SET 子句
3.4.1功能
CODE SET子句指明表示外部媒体上的数据所使用的字符编码集。3.4.2-般格式
CODE-SETIS 字母表名 1
3.4.3语法规则
GB/T4092.4—92
(1)当对·个文卷指明了CODE-SET子句时,在这个文卷中的所有数据都必须描述为USAGEISDISPLAY。而且任何有正负号的数值数据必须用SIGNISSEPARATE子句描述,(2)由CODE-SET子句引用字母表名子句一定不能指明字值常量短语。3.4.4一般规则
(1)如果指明了CODE-SET子句::成功地执行OPEN语句之后,表示外部媒体上数据的字符集就是由OPEN语句中指定的文卷名的文卷描述款中的字母表名1所号用的字符集(见GB/T4092.2中4.5SPECIAL-NAMES段)。,它指明了从外部媒体上的字符集转换戒本原字符巢或者从本原字符集转换成外部媒体上字符集的转换算法。这种转换在执行输入输出操作期间发生。(2)如果没有指明CODE-SET了句,则外部媒体上的数据采用本原字符集。(3)如果相关的文卷连接符是外部文卷连接符,则运行单位中与该文卷连接符相关的CO1)ESET子句具有相同的字符集。
3.5DATARECORDS子句
3. 5. 1功能
DATARECORDS子句仅用来在程序中列出有关文卷的各个数据记录的名字。在标准COBOL的这一版本中视DATARECORD是过时成分,因为在标准COBOL的以后的修改版中要把它捌掉。3.5.2-般格式
RECORD IS
RECORDSARE!
3.5.3语法规则
(数据名 1}
(1)数据名1是数据记录名,它们必须有相应的01层号描述,且在描述中用相同的名。3.5.4-般规则
(1)出现多个数据名表明该文卷包含多种数据记录。这些记录可以有不同的人小。不同的格式等。它们在何子中刻出的次序是不重要的,(2)从概念上说一个文卷中的所有记录共享同一个区,这个区并不因文卷中出现多种数据类型而改变。
3.6LABELRECORDS子句
3.6.1功能
IABELRECORDS.指明标号是否出现。在标准COBOL的这一版本中视LABELRECORDS子句是过时成分,因为在标准COBOI.的以后的改版巾要把它删掉,3. 6. 2 一般格式
RECORD IS
STANDARD
IRFCORDSARE/IOMITTED
3.6.3一般规则
(1)OMITTED指明该文卷或分配给该文卷的设备不存在显式的标号。(2)STANDARD指明该义卷或分配给该文卷的设备上存在标号,并且该标号与实现者的标号指明一致。
(3)如果没有对文卷指明LABELRECORDS子句,则该文卷的标号记录应与实现者的标号说明致。
(4)如果与该文卷描述相关的文卷连接符是外部文卷连接符(见(B/T4092.12中4.5EXTERNAL了句),在运行单位中与该文卷连接符相关的所有LABELRECORDS子句应有同样的说明。
小提示:此标准内容仅展示完整标准里的部分截取内容,若需要完整标准请到上方自行免费下载完整标准文档。