COBOl常用操作Word文件下载.docx
《COBOl常用操作Word文件下载.docx》由会员分享,可在线阅读,更多相关《COBOl常用操作Word文件下载.docx(30页珍藏版)》请在冰豆网上搜索。
第1至6列为“标号区”。
第7列为“续行标志区”
第8至此11列,称为“A区”。
程序中有些内容如部头,节头,段头,层号01,层号77及文件
描述符FD等应从A区开始写。
第12至此72列,称为“B区”。
写程序中的正文部分。
如过程部中的句子只能从B区开始写。
第73至80列,称为“注释区”。
五。
COBOL字符集包括:
数字0---9,字母A---Z,a---z,专用字符:
+
-
*/=,.;
‘()<
>
$及空格。
属于系统字符集而不属于COBOL字符集的字符只能出现
在COBOL程序中的字符串里。
六。
常量:
COBOL常量分为数值常量(如100,-29),非数值常量(如‘ABC’)和表意常量(如ZERO,SPACE,HIGH-VALUE,LOW-VALUE,QUOTE,ALL常量)。
七。
COBOL所处理的数据的特点
层次的概念:
数据间存在的从属关系。
文件的概念:
多个记录可以组成一个文件。
记录的概念:
具有一定层次关系的一组数据项的最大集合,它是内存中具有独立逻辑含义的最大存取项,具有最高层次。
CHAPTER2过程部初步-----最基本的过程部语句
输入输出语句。
ACCEPT语句:
直接从终端键盘或系统指定的输入设备上输入数据。
ACCEPT
标识符[FROM助忆名]
注:
A。
标识符(identifier)指的是能唯一地标识一个数据项的数据名,不能唯一地标识一个
数据项的数据名不是标识符。
标识符可以是组合项。
B。
在ACCEPT语句中如不写FROM部分,如ACCEPT
A
,则表示从系统隐含指定的
设备上读入一个数据给A。
如果不想从指定的设备上输入,则要用FROM选项,
这时“助忆名”需要在环境部中事先说明和那种外部设备相联系。
如:
ENVIRONMENT
DIVISION。
(环境部)
CONFIGRATION
SECTION。
(配置节)
SPECIAL-NAMES。
(专用名段)
CONSOLE
IS
ABC
如在过程部中有ACCEPT
T
FROMABC。
则表示要从控制台接收数据
DISPLAY语句:
从计算机内存中输出到某一指定的输出设备上。
DISPLAY
{标识符1,常量1}[标识符2,常量2]。
。
[UPON助忆名]
(标识符和助忆名的说明同上)
ACCEPT语句和DISPLAY语句不必定义文件适用于少量的数据输入输出。
READ语句:
COBOL语言中数据的输入输出主要是通过对外部文件的读写进行的。
READ语句就是从外部文件上读入数据输出到程序中的数据项中。
在程序中用到的所有文件都需要在环境部中指定程序中用到的文件名与实际外部文件的联系。
数据部也要对文件加以描述。
指定数据结构各数据项所占的内存单元长度以及数据形式。
COBOL的存取是以文件为对象以记录为单位的。
READ语句的最简单的格式为:
READ
文件名
DIVISION。
INPUT-OUTPUT
SECTION。
FILE-CONTROL。
SELECT
IN-FILLE
ASSIGN
TO
外部文件名。
为了存储读入的记录,必须在内存开辟一个与文件记录长度相等的存储区,即‘输入文件纪录区’。
每一个输入文件都有相应的‘输入文件纪录区’,与之一一对应。
亦即在数据部中描述文件的数据结构。
假设
IN-FILE
文件每一记录中包含的内容为:
产品代码,产品数量,产品单价,生产日期。
设某一记录的具体数据
如下:
0
0
1
9
3
2
2
prodcode
quantity
price
year
mon
day
如果我们希望读入该记录并对各数据项进行处理,则需要在
‘输入纪录区’中划分出各数据项,以便存放相应的数据。
定义输入纪录区以及划分记录区中各数据项的工作是由数据部来完成的。
下面我们简单介绍数据部定义记录区方法,针对上面输入数据的特点,我们可以在数据部中对记录区作如下描述:
DATA
FD
LABLE
RECORD
STANDARD。
01
IN-RECORD。
(定义记录区名为IN-RECORD)
02
PROD-CODE
PIC
9(4)。
PROD-QUANTITY
9(5)。
PROD-PRICE
9(6)。
MANU-DATE。
(生产日期为一组合项)
05
DATE-CCYY
DATE-MM
9
(2)。
DATE-DD
其中,FD即FILEDESCRIPTION,表示从该行起是‘文件描述体’。
LABLERECORDISSTANDARD:
所有的磁盘文件和磁带文件都必须写明此句。
01层定义‘输入纪录区’的名字为IN-RECORD,由于01层属于FD描述体,因此也就指定了IN-RECORD和IN-FILE的关系。
亦即从IN-FILE读入的数据存放在IN-RECORD记录区中。
这样,在执行一次READ语句后,文件中一个记录的数据便输入到内存记录区,按排列顺序分别送到记录区中各数据项中。
注意文件的各记录中的数据是不分数据项的,只是按一定的顺序把数据存放在各字节中。
所以数据部对记录区中各数据项的描述应该与文件的记录中各数据排列次序和长度相一致。
READ语句的一般形式:
文件名
RECORD[INTO
标识符]
[AT
END
执行语句],例如:
READ
INTOTEMP-RECORD
AT
STOP
RUN
该语句除了将读到的数据传送到IN-RECORD之外,还传送到TEMP-RECORD中。
在遇到文件尾时,程序结束运行。
WRITE语句:
将内存中的数据输出到外部设备,主要是由WRITE语句来完成的。
WRITE语句的最简单的格式为:
WRITE
记录名(注意WRITE语句的操作对象是记录,所以是‘记录名’而不是‘文件名’)
与输入文件相似输出文件也要在环境部中指定所对应的实际存在的外部文件:
OUT-FILLE
打印机名。
也要在数据部中定义输出记录区:
OUT-FILE
OMITTED。
OUT-RECORD。
MANU-DATE
LABLERECORDISOMITTED:
凡输出设备是打印机的都必须写明此句。
如输出设备是磁盘,则仍用LABLERECORDISSTANDARD。
01层定义‘输出纪录区’的名字为OUT-RECORD,由于01层属于FD描述体,因此也就指定了
OUT-RECORD和OUT-FILE的关系。
在用WRITE语句输出一个记录之前,应向输出记录区传送数据。
如已将数据传送到上述各数据项中,则在执行WRITE
OUT-RECORD语句后,则记录区中的数据通过打印机打印出来。
WRITE语句的一般形式:
标识符2
LINE
BEFORE
整数
LINES
记录名
[FROM
标识符1]
AFTER
ADVANCING
助忆名
PAGE
5。
OPEN语句:
程序中如果需要读写文件,则该文件必须先用OPEN语句打开,系统在执行READ,WRITE以前先检查该文件是否已在规定的外部设备上准备就绪。
OPEN语句的一般格式为:
INPUT
文件名1[,文件名2]。
OPEN
OUTPUT
文件名3[,文件名4]。
。
6。
CLOSE语句:
当对一个文件的读或写的操作已完成,就应关闭该文件。
CLOSE语句的一般格式为:
CLOSE
[,文件名2]。
COBOL通过2位长度的文件状态字(FILE-STATUS)来表示文件的操作结果是否成功,常见的文件状态值及意义:
算数运算语句
ADD语句:
格式1:
ADD
标识符1
,标识符2。
TO标识符m[,标识符n]。
常量1
,常量2
格式2:
,标识符2
,标识符3
,常量2
,常量3
GIVING标识符m[,标识符n]。
SUBTRACT语句:
格式1:
SUBTRACT
标识符1
,标识符2。
FROM标识符m[,标识符n]。
常量1
格式2:
FROM
标识符
常量
GIVING标识符n[,标识符p]。
MULTIPLY语句:
MULTIPLY
BY
标识符2[,标识符3]。
常量1,
标识符2
GIVING标识符3[,标识符4]。
,
常量2
DIVIDE语句:
DIVIDE
INTO
常量1
B
注意:
A
INTO
是指
B/A
C
GIVING
GIVING
A/B
COMPUTE语句:
COMPUTE
[,标识符2]。
=算术表达式
运算的优先级由高到低顺序为:
(),正负号
,**,*或
/
,+或-
如:
C=3,D=5,E=2,F=1则:
COMPUT
A,B=-(C+D)*2/
E**3-
F=-3
传送语句(MOVE)
MOVE语句用来实现内存中数据的传送(而不是内存和外设之间的传送)。
MOVE语句的一般格式为:
MOVE
标识符2[,标识符3]。
MOVE语句的传送规则:
1,如果接收项和发送项在数据部中描述的类型和长度相同,则按字节一一对应传送。
2,如果接收项和发送项长度不相同,而二者都是数值数据项,则按小数点对齐处理。
3,对字母或字符数据(非数值型数据)的传送,按左对齐处理。
4,初等项和组合项之间可以相互传送。
关于各类数据之间的传送规则将在第五章中介绍。
转移语句(GO
TO)
当需要使程序改变正常执行的顺序时,可以使用无条件转移语句GO
TO。
其一般格式为:
GO
过程名
GO
过程名1
[,过程名2]。
过程名n
DEPENDING
ON
标识符
只能转移到段或节的开头,不能转移到段或节的当中某一语句。
段名或节名为过程名。
条件语句(IF)
当需要根据给出的某些条件是否满足来决定应执行哪一部分语句时,可以使用条件语句IF。
其一般格式为:
IF
条件
语句组1
ELSE
[END-IF]
NEXT
SENTENCE
SENTENCE
COBOL关系运算符:
IS
GREATER
THAN
(>
)
LESS
(<
)
EQUAL
(=)
NOT
(NOT>
)(<
=)
(NOT<
)(>
(NOT=)
注意:
句点在IF语句中的特殊作用。
A>
A。
ADD
TOTAL。
与
IF
0
A
就不同。
为避免出现问题应该使用显式终止符(END-IF,END-PERFORM等)代替隐式终止符(句点“。
”)
停止语句(STOP)
RUN
执行后,程序停止运行,停止后不能再接着运行,如需要,可重新运行一次。
常量,表示程序暂时挂起不往下执行,显示出此常量。
返回语句(GOBACK)
停止运行,将控制权返回给上一级。
可用本语句代替STOP语句。
子程序必须用GOBACK而
不能用STOP:
因为STOP停止的是一个RUNUNIT(运行单元)。
标识部(IDENTIFICATION
DIVISION)
IDENTIFICATION
DIVISION.
PROGRAM-ID.
程序名。
[AUTHOR。
作者名。
]
[INSTALLATION。
计算机设置场所。
[DATE-WRITTEN。
源程序编写日期。
[DATE-COMPILED。
源程序编译日期。
[SECURITY。
保密程度。
]
环境部(ENVIRONMENT
ENVIRONMENT
CONFIGRATION
SOURCE-COMPUTER。
源计算机名。
OBJECT-COMPUTER。
目标计算机名。
[SPECIAL-NAMES。
专用名描述项。
[INPUT-OUTPUT
FILE-CONTROL。
{文件控制描述体}。
[I-O-CONTROL。
输入输出控制描述体]]
专有名段的一般格式:
[DICIMAL-POINT
COMMA。
[CURRENCY
SIGNIS
非数值常量。
]
[专用名
助忆名。
INPUT-OUTPUT
SECTION包括两个段,即:
FILE-CONTROL
和I-O-CONTROL。
FILE-CONTROL段是为文件分配外部文件。
I-O-CONTROL段的作用是可以指定目标程序运行时,几个文件共用一个内存区,以省内存。
在此暂不作介绍。
FILE-C