8.2.7 包含有输入输出处理过程的SORT语句排序[共3页]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
142 第8章 数据的排序与合并COBOL * PROCEDURE DIVISION.
SORT SORT-PROC-FILE ON ASCENDING KEY S-KEY USING IN-FILE OUTPUT PROCEDURE IS SORT-OUTPUT-PROC. /*此处指明输出处理过程*/
STOP RUN.
* SORT-OUTPUT-PROC. RETURN SORT-PROC-FILE AT END SET END-OF-RECORDS TO TRUE. PERFORM UNTIL END-OF-RECORDS
DISPLAY 'SORTED-REC :' SORT-PROC-REC RETURN SORT-PROC-FILE AT END SET END-OF-RECORDS TO TRUE END-PERFORM.
关于排序中的输出处理过程,还有以下几点需要注意。
在排序输出处理过程中,至少需要包含一条RETURN 语句。RETURN 语句使每一条排序后的记录能够被输出处理过程所使用。RETURN 语句作用于排序中间文件,就好比READ 语句作用于输入文件。
可以使用RETURN INTO 语句替代RETURN 语句。当使用RETURN INTO 语句时,记录将返回到工作存储节或一块用于输出的区域。
在RETURN 语句中,可以使用A T END 或者END-RETURN 短语指明返回结束后的操作。其中A T END 短语表示在所有记录RETURN 完毕后执行其后的操作。END-RETURN 短语则相当于一个强制终止符,此处直接结束RETURN ,并执行其后的操作。 8.2.7 包含有输入输出处理过程的SORT 语句排序
前面分别介绍了排序中的输入输出处理是如何编写的。此处将把这两种处理过程综合应用到使用SORT 语句进行的排序之中。通过综合应用,加深对以上两种处理过程的掌握,同时巩固并扩充应用数据排序的能力。
下面结合一个具体实例进行讲解。仍然以此前的员工信息文件为例,此处在原由的基础上,新增一个员工状态的数据项。假设新的员工信息文件内容如下。
1235 ZHU BO WU HAN 430074 A
1024 WU GUO JUN BEI JING 100085 A
1346 ZHANG XIANG S HEN ZHEN 518057 N
1005 XIE FEI WU HAN 430023 A
1253 XIE FEI WU HAN 430022 A
1028 ZHENG GANG BEI JING 100085 N
1204 ZOU LI QIANG SHANG HAI 201620 A
1536 LING CHEN BEI JING 100080 N
1791 TIAN BO SHANG HAI 201821 N
本例要求仅对员工状态信息为“A ”的员工记录数据进行排序。同时,在排序完成后,要求将所有的员工姓名转换为用小写字母表示,最后再写入排序输出文件中。排序要求以员工姓名作为第一关键字,员工工号作为第二关键字,全部用升序排列。实现以上功能的完整