如何读取两个记录并将它们与顺序文件系统中的主键进行比较? [英] How to read two records and compare them with a primary key in sequential file system?

查看:100
本文介绍了如何读取两个记录并将它们与顺序文件系统中的主键进行比较?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我输入文件的记录格式:

This is the record format for my input file:

ID NAME Purchaseamount month
1  xxx  10000           feb
1  xxx  10000            mar
1  xxx  10000           apr
2  yyy  100              jan
2  yyy  2054             mar

如何为每个人添加购买金额?我会给你我工作的伪代码.

How can I add the purchase amount for every person? I will give you the pseudo-code of my work.

Read inputfile,
move to working storage variables,
end read,
perform until eof,
read input file,
if inputid = ws-input id,
add purchase amount,
else write to output file

推荐答案

Bruce提供了一个很好的解决方案,但是通常有不止一种做事方法.这是一个替代的解决方案(以伪代码形式),该解决方案的灵感来自迈克尔·杰克逊(Michael A. Jackson)的程序设计原理"(如果您还没有阅读,我建议这样做).

Bruce provides a good solution, but there is often more than one way to do things. Here is an alternate solution (in pseudocode) that is inspired by Michael A. Jackson's "Principles of Program Design" (I recommend it if you have not read it).

OPEN INPUT INPUT-FILE
READ INPUT-FILE 
PERFORM PROCESS-PERSON UNTIL INPUT-FILE-EOF
CLOSE INPUT-FILE
STOP RUN
.

PROCESS-PERSON.
    MOVE INPUT-ID TO LAST-INPUT-ID
    MOVE ZERO TO PURCHASE-TOTAL
    PERFORM PROCESS-RECORD UNTIL INPUT-FILE-EOF OR
        (INPUT-ID NOT = LAST-INPUT-ID)
    WRITE PERSON-TOTAL
    .

PROCESS-RECORD.
    ADD PURCHASE-AMOUNT TO PURCHASE-TOTAL
    READ INPUT-FILE
    .

这篇关于如何读取两个记录并将它们与顺序文件系统中的主键进行比较?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆