女生学cobol招聘 有前途吗

下次自动登录
现在的位置:
& 综合 & 正文
COBOL文件操作(转载)
要在COBOL中使用文件,要在3个不同的部中放上信息。环境部,要有使用的每个文件的文件控制项目(FILE–CONTROL)。这个项目将程序中使用的文件名与程序外的实际文件联系起来。这些项目还定义文件的组织和访问方式。数据部,要有每个文件的文件描述符(FD)项目,就是数据定义。过程部,放上处理语句,OPEN,READ,WRITE,Delete等。
环境部中主要是FILE–CONTROL和I–O–CONTROL.I–O–CONTROL很少使用。Select [OPTIONAL] file–name ASSIGN TO DEV/FILE[RESERVE N [AREA/AREAS]][FILE STATUS IS VAR]Select必须是第一句,其他顺序无关。file–name是程序中传递使用的文件名,相当于实际文件的一个别名。OPTIONAL用于执行可能不存在的文件。ASSIGN将file–name连接到实际的外部设备或文件。(TO好像可以省略。)RESERVE指定文件缓冲区。FILE STATUS指定一个变量存放文件状态,这个变量应该已在WORKING–STORAGE SECTION中定义。
对于顺序文件,还有声明如下:[ORGANIZATION IS SEQUENTIAL]
可选,缺省为顺序组织文件[ACCESS MODE IS SEQUENTIAL]
可选。顺序文件只允许顺序访问[PADDING CHARACTER IS char]
指定文件在固定块长设备上时键块所用的字符,char为一个字符的数据项。[RECORD DELIMITER IS STANDARD/usr–define]
指定如何确定变长纪录的长度。顺序文件例子:Select file–name ASSIGN TO ”/usr/file1″FILE STATUS IS file–status
对于相对文件,还有声明如下:[ORGANIZATION IS RELATIVE]
是相对文件必须的[ACCESS MODE IS SEQUENTIAL [RELATIVE KEY IS data]] 或者[ACCESS MODE IS RANDOM/DYNAMIC RELATIVE KEY IS data]访问方式有3种,缺省是SEQUENTIAL。RELATIVE KEY 可选。如果存在,则文件读取操作顺利完成后,data用所读取纪录的关键字更新。data应为文件的纪录区中没有的整数数据项。相对文件的例子:Select file–name ASSIGN TO ”/usr/file2″or GANIZATION IS RELATIVEACCESS MODE IS DYNAMIC RELATIVE KEY IS DAY–NUMBERFILE STATUS IS file–status
对于索引文件,还有声明如下:[ORGANIZATION IS INDEXED]
是索引文件必须的[ACCESS MODE IS SEQUENTIAL/RANDOM/DYNAMIC] RECORD KEY IS data1[AlterNATE RECORD KEY IS data2 [WITH DUPLICATES]]访问方式有3种,缺省是SEQUENTIAL。RECORD KEY 指定文件的主纪录关键字,data1应为定义该文件的某个记录区的字母数字数据项目。这个关键字的描述及其在数据记录中的位置应该与生成文件时所用的关键字一致。AlterNATE RECORD KEY 如果文件有替换关键字,则其关键字用这个从句的短语指定,索引中允许重复关键字时采用DUPLICATES.COBOL要求文件记录中定义data2。重复关键字的长度及其在数据记录中的位置应该与生成文件时一致,所有替换关键字应放在文件控制项中。索引文件的例子:Select file–name ASSIGN TO ”/usr/file3″or GANIZATION IS INDEXEDACCESS MODE IS RANDOMRECORD KEY IS NUMBER OF EMPLOYEE–RECORDAlterNATE RECORD KEY IS LAST–NAME OF EMPLOYEE–RECORD WITH DUPLICATESAlterNATE RECORD KEY IS SS–NUMBER OF EMPLOYEE–RECORDFILE STATUS IS file–status这里用户在程序中使用的文件名是file–name,实际文件名是file3。file–name的定义放在程序后边的数据部的文件节中。文件是索引文件,程序可以随机访问文件。文件的主关键字是NUMBER OF EMPLOYEE–RECORD,替换关键字是LAST–NAME和SS–NUMBER,都是文件记录区的字段。LAST–NAME允许重复。
文件状态:(对文件操作时返回文件状态到定义的文件状态变量)ANY
00 成功ANY
02 对索引文件,成功但发现重复关键字READ
04 成功,但纪录长度不符合指定长度OPEN
05 成功,但文件是可选的,前面不存在OPEN,CLOSE
07 对顺序文件,成功,但媒介不是盘READ
10 文件已到末尾READ
14 对相对文件,相对纪录号的有效位超过相对关键字数据项允许的位WRITE,REWRITE
21 对索引文件,顺序出错WRITE
22 对索引和相对文件,带这个关键字的纪录已经存在START,READ
23 对索引和相对文件,带这个关键字的纪录不存在WRITE
24 对相对文件,相对纪录号的有效位超过相对关键字数据项允许的位ANY
30 I/O错误WRITE
34 对顺序文件,发生超边界错误OPEN
35 对顺序和相对文件,未发现非可选文件OPEN
37 对顺序和相对文件,该文件不支持指定的打开方式OPEN
38 对顺序和相对文件,文件已经用锁关闭OPEN
39 对顺序和相对文件,文件属性不支持程序中指定的属性OPEN
41 文件已经打开CLOSE
42 文件未打开Delete,REWRITE 43 最近的操作不是READWRITE,REWRITE
44 纪录长度非法READ
46 没有有效的下一个记录READ,START
47 文件未在INPUT或I–O方式中打开WRITE
48 文件未在OUTPUT或EXTEND方式中打开Delete,REWRITE 49 文件未在I–O方式中打开ANY
90~99 厂家定义
由上可知,文件操作时会发生错误,COBOL提供了检查错误和恢复I/O错误的公用地点。过程部开头应包括DECLARATIVES部分,放上出现错误时要执行的语句。PROCEDURE DIVISION.DECLARATIVES.section–name SECTION.USE statement(出现错误时调用的节).paragraph–name.sentence…END DECLARATIVES.section–name SECTION.paragraph–name.sentence…
USE AFTER STANDARD EXCEPTION/ERROR PROCEDURE ON file–name/INPUT/OUTPUT/I–O/EXTEND只能在USE语句中指定一个文件,一种方式也只能有一个USE语句。如果既指定了文件,也指定了方式,则文件优先。
程序使用的所有文件要定义在数据部的第一节––––文件节中。FD file–name[BLOCK CONTAINS int–1 [TO int–2] RECORDS/CHARACTERS][RECORD (CONTAINS int–3 [TO int–4] CHARACTERS)/(IS VARYING IN SIZE [FROM int–5] [TO int–6] CHARACTERS)/(DEPENDING ON data1)[LABEL (RECORD IS)/(RECORDS ARE) STANDARD/OMITTED][VALUE OF (implementor–name IS id–lit–1)...][DATA (RECORD IS)/(RECORDS ARE) data2]BLOCK CONTAINS 指定实际纪录的具体长度或最大与最小长度的逻辑记录数或块数。一般有操作系统和文件系统指定。RECORD 指定包含变长纪录的文件中记录的最大与最小长度或定长纪录的具体长度。RECORD CONTAINS 如果不带TO,则int–3是每个纪录的长度;如果带TO,介于int–3和int–4之间。RECORD IS VARYING 指定纪录长度最小int–5和最大int–6。DEPENDING ON 如要用,则需要在data1中保存纪录长度。LABEL RECORD 指定文件是否带标号。(过时,下个版本不包含)VALUE 和LABEL一起检查标号的不同部分。(过时,下个版本不包含)DATA RECORD 指定属于文件的纪录描述项(FD后的01层项目)并作为程序文档。(过时,下个版本不包含)一般定义文件只用第一句:FD file–name顺序文件的LINAGE声明对顺序文件,LINAGE声明可以在文件输出是打印机或打印机兼容文件时指定一些打印细节。[LINAGE IS BODY LINES [WITH FOOTING AT FOOT][LINES AT TOP TOP][LINES AT BOTTOM BOTTOM]] [CODE–SET IS alphabet–name]整个文件分成TOP,BODY,BOTTOM三部分。其中BODY包含有FOOT.CODE–SET指定文件中所用的字符集。
过程部主要是对文件的OPEN,CLOSE,READ,WRITE,START,REWRITE,Delete等操作。OPENOPEN文件有4种方式:(如果文件声明为OPTIONAL,则文件不存在会创建文件,否则会报错)OPEN INPUT FILE–NAME.
只能读取的文件。OPEN OUTPUT FILE–NAME.
生成写入纪录的文件,读取该文件会出错。若文件已存在,已有记录会被全部删除。OPEN I–O FILE–NAME.
可读可写的文件。OPEN EXTEND FILE–NAME.
生成写入的文件。与UOTPUT的区别在于,若文件已存在,EXTEND将纪录加在文件末尾。如果OPEN不成功,执行USE语句。USE语句不存在,则程序结束。顺序文件的OPEN可以有以下方式:OPEN INPUT FILE–NAME [(WITH NO REWIND)/REVERSED].OPEN OUTPUT FILE–NAME [WITH NO REWIND].REVERSED可以逆序处理,即由后向前处理。(过时,下个版本不包含)WITH NO REWIND 用于单卷磁带文件,如果指定文件在不适用REWIND的媒介上,忽略。在文件描述项中指定LINAGE得顺序文件不能用EXTEND方式打开。
CLOSE所有文件的CLOSE方法:CLOSE FILE–NAME.
关闭文件。CLOSE FILE–NAME WITH LOCK.
关闭文件,不退出程序不能再打开此文件。顺序文件还有其他一些选项,如关闭卷或单元,和继续处理文件:CLOSE file–name [REEL/UNIT] [FOR REMOVAL]/WITH NO REWIND
READ顺序访问方式读文件。一定要有NEXT字样。READ file–name [NEXT] RECORD [INTO data1][AT END statements][NOT AT END statements] [END–READ]如果READ成功且有INTO,将读到的数据写入data1。如果文件中没有记录,执行AT ENDstatements,如果没有就执行USE。如果READ成功,就执行NOT AT END statements。
动态访问方式读文件。(相对或索引文件)利用OPEN语句,将文件指针设在开头。进行各种成功的READ操作。有START语句标识文件中的纪录。
随机访问方式读文件。READ file–name RECORD [INTO data1][INVALID KEY statements][NOT INVALID KEY statements] [END–READ]如果READ成功且有INTO,将读到的数据写入data1。如果文件中没有记录,执行INVALID KEY statements,如果没有就执行USE。如果READ成功,就执行NOT INVALID KEY statements。如果是相对文件,要设置文件控制项RELATIVE KEY中指定的整型关键字值后才能执行READ.如果是索引文件,要设置当前索引的关键字值后才能执行READ.
WRITE顺序方式。WRITE data [FROM data1] [BEFORE/AFTER ADVANCING mnemonic–name/PAGE/N LINE(LINES)][AT END–OF–PAGE(EOP) statements][NOT AT END–OF–PAGE(EOP) statements][END–WRITE]如果指定了FROM,先将data1复制到data,再写入文件。BEFORE/AFTER ADVANCING N LINE(LINES) 在纪录间插入N个空行。AT END–OF–PAGE(EOP) 对于带LINAGE的文件有效,在WRITE使指针进入页脚(FOOT)时,先执行WRITE,再执行AT END–OF–PAGE(EOP) statements。
相对和索引文件方式。WRITE data [FROM data1][INVALID KEY statements][NOT INVALID KEY statements] [END–WRITE]
REWRITE替换文件中的一个记录。顺序方式:REWRITE data [FROM data1] [END–REWRITE]相对和索引方式:REWRITE data [FROM data1][INVALID KEY statements][NOT INVALID KEY statements] [END–REWRITE]
Delete删除文件中的一个记录。只能用于相对或索引组织的文件。Delete file–name RECORD[INVALID KEY statements][NOT INVALID KEY statements] [END–Delete]顺序访问方式的话,前一个READ的纪录被删除。随机或动态访问的话,RELATIVE KEY的内容或主关键字所表示的纪录从文件中删除。
START将相对或索引文件定位到某个纪录,以便对其进行顺序访问。只对相对和索引文件有效。START file–name [KEY IS (EQUAL TO)/=/GREATER THAN/&/NOT LESS THAN/NOT & data][INVALID KEY statements][NOT INVALID KEY statements] [END–START]如果执行成功,则data所属的索引变成文件的当前索引。对于相对文件,data定义为文件的RELATIVE KEY的数据项。对于索引文件,data为下列之一:文件的主关键字,是RECORD KEY从句中指定的数据项。文件的替换关键字,是AlterNATE RECORD KEY从句指定的数据项。从一个关键字的第一个位置开头,长度小于或等于该关键字的数据项。
&&&&推荐文章:
【上篇】【下篇】请不要再来学COBOL,那玩意没前途_上海杉达学院吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:44,879贴子:
请不要再来学COBOL,那玩意没前途收藏
大三下的时候就开始去花旗实习,做一名cobol软件工程师,其实这个岗位,计算机系去的人比较屈才,最好日语专业的去,这个行业之要培训两个月就好。就目前的就业前景来说,其实会日语的cobol软件工程师比不会日语的软件工程师有前途,至少工作不缺。而我很不幸的,不会日语,所以被花旗release。作为一个干了1年半的已毕业学长来说,在此强烈推荐各位不要再去学cobol,现在市面上,做什么都比这个行业前景高 ,工资升的快 ,而且稳定。去huaqin干cobol,三年1w是很难的,但是你去做java,做前端,做运维,做app,做什么都比这个涨工资快。各位学弟学妹,在此希望你们慎重。勿入错行。
四级,日韩法等12国语言,留学,职场兴趣多门课程任选!
大型机痛苦啊
感觉计算机系什么都不精通,但做什么都可以。。。有啥推荐的吗学长
不会是文思海辉的吧
10年ibm主机+cobol的前辈告诉你:cobol非常坑人,千万不要去学,浪费青春,几年下来,除了cobol你什么也不会,这个所谓的计算机语言连学文科的都能干、学日语的比计算机专业毕业的还吃香,干cobol开发你大学计算机专业4年就等于白学。几年后想换门开发语言都难,虽然自学别的开发语言,但是没有实际项目经验,工作都找不到。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或cobol学习_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
上传于|0|0|文档简介
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩35页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 cobol教学视频 的文章

 

随机推荐