COBOL的match处理是比较两个文件的,那么内部是怎么进行比较的呢?
1个回答
展开全部
首先这两个文件要排好序,就那学校学生举例吧
A学校2,3年级学生与B学校2,3年级学生的语文成绩来做match比较
1。先把A,B学校学生信息当做两个文件,按照年级,班级,学号(假设这两个学校学号的编码方式相同)进行排序
2。开始做match处理,首先分别从A,B中read一条数据,把排序KEY(年级,班级,学号)存到中间变量里去:WK-KEY-A,WK-KEY-B
3。然后开始做循环处理
情况1:A,B 同班级同学号 判断WK-KEY-A=WK-KEY-B成立的话,做语文成绩比较,然后分别read A,B的下一条
情况2:A的某班级学生比B的同班级学生少 判断WK-KEY-A>WK-KEY-B成立的话(因为A的该班级学生少所以比B更快的读到下一个班级的第一个学号的学生信息),此时B文件读取下一条再回到3。循环
情况2:B的某班级学生比A的同班级学生少 判断WK-KEY-A<WK-KEY-B成立的话(与情况2一样),此时A文件读取下一条再回到3。循环
直到两边文件都读完位置,程序结束
A学校2,3年级学生与B学校2,3年级学生的语文成绩来做match比较
1。先把A,B学校学生信息当做两个文件,按照年级,班级,学号(假设这两个学校学号的编码方式相同)进行排序
2。开始做match处理,首先分别从A,B中read一条数据,把排序KEY(年级,班级,学号)存到中间变量里去:WK-KEY-A,WK-KEY-B
3。然后开始做循环处理
情况1:A,B 同班级同学号 判断WK-KEY-A=WK-KEY-B成立的话,做语文成绩比较,然后分别read A,B的下一条
情况2:A的某班级学生比B的同班级学生少 判断WK-KEY-A>WK-KEY-B成立的话(因为A的该班级学生少所以比B更快的读到下一个班级的第一个学号的学生信息),此时B文件读取下一条再回到3。循环
情况2:B的某班级学生比A的同班级学生少 判断WK-KEY-A<WK-KEY-B成立的话(与情况2一样),此时A文件读取下一条再回到3。循环
直到两边文件都读完位置,程序结束
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询