免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4001 | 回复: 12
打印 上一主题 下一主题

今天看到一RPGIV处理数据的好题,不知各位将如何解答和解释这几条常见的指令 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-28 10:38 |只看该作者 |倒序浏览
今天看到一RPGIV处理数据的题目,不知各位将如何解答和解释这几条常见的指令?

试就以下数据,练习这些指令来解决这四个Question


1.先解以下7行常见容易搞混淆的取数指令的区别和各自用法?

IFEQ  XXX  ENDIF
IFEQ  XXX  ELSE  XXX  ENDIF
SETLL
READ
READE
CHAIN
DOWEQ  XXX  ENDDO




2.再解Question

1) Find the total amount of all item
2) Find the amount of item A
3) Find the total amount of item which greater than 100
4) Find the total amount of item type FR

Data
Item#        Item type        Amount
A        FR                100
B        FR                200
C        FG                700
D        PA                50


高手的你们快行动起来,说出你的解题思路和意思。
以上指令很易混淆,请用你的理解来说明。。。。


谢谢!!!!

[ 本帖最后由 fengyunzi 于 2008-12-3 22:02 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-11-28 10:39 |只看该作者
以下七行RPGIV常用取数指令(极易混淆和用错的指令)的区别和各自通常用法及含义?
IFEQ  XXX  ENDIF
IFEQ  XXX  ELSE  XXX  ENDIF
SETLL
READ
READE
CHAIN
DOWEQ  XXX  ENDDO

[ 本帖最后由 fengyunzi 于 2008-11-28 11:02 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-11-28 10:53 |只看该作者
测试下你对RPGIV 特别是total数据处理的能力。。。。。

论坛徽章:
0
4 [报告]
发表于 2008-11-28 10:56 |只看该作者
KEY是?

论坛徽章:
0
5 [报告]
发表于 2008-11-28 11:08 |只看该作者
不用KEY的

这个问题,分成两部分来解答,详解以上问题描述

高手的你们快行动起来,说出你的解题思路和意思。
以上指令很易混淆,请用你的理解来说明。。。。


谢谢!!!!

论坛徽章:
0
6 [报告]
发表于 2008-11-28 11:16 |只看该作者
别小看这几个指令,平常我们天天用,觉得太简单了,如果让我们用术语来概括他的意思 用法 区别,那又不是很容易说出来的

论坛徽章:
0
7 [报告]
发表于 2008-11-30 20:54 |只看该作者
怎么没有兄弟们的跟帖....
期待中


谢谢

论坛徽章:
0
8 [报告]
发表于 2008-11-30 22:15 |只看该作者
passthru  22:07:35
1) Find the total amount of all item
   mTotal = 0;
   dow not eof();
      read rd;
      mTotal = mTotal + Amount;
   enddo;
2) Find the amount of item A
     假设Item#为lf的key:
     mKey = 'A';
     mTotal =0;
     chain mKey rd;
     if found;
        mTotal = Amount;
     endif;
3) Find the total amount of item which greater than 100
    处理(一):在lf中或query file过滤掉amount小于等于100的记录;
    处理(二);
   mTotal = 0;
   dow not eof();
      read rd;
      if amount <=100;
         iter;
      endif;
      mTotal = mTotal + Amount;
   enddo;
4) Find the total amount of item type FR
处理方法如题2,只是替换lf和key值的选项。

[ 本帖最后由 fengyunzi 于 2008-11-30 22:16 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2008-11-30 23:11 |只看该作者

回复 #1 fengyunzi 的帖子

没有设关键字的话,就建个逻辑文件,然后对逻辑文件进行操作。否则setll chain reade read 等都不能用,

另外,setll 设文件指针,它会指向文件或者字段(如果你写了的话)的最上层,然后顺序读下去。

我现在有个疑问,setll fieldname pf; reade filedname pf ;  注意,这个filedname是pf表中不存在的名字(我随便起的),但是却能读到最后一条记录,为什么??

[ 本帖最后由 大敌人 于 2008-12-1 09:20 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2008-12-03 14:14 |只看该作者
1.先解以下7行常见容易搞混淆的取数指令的区别和各自用法?

IFEQ  XXX  ENDIF条件判断、满足条件则执行相关语句

IFEQ  XXX  ELSE  XXX  ENDIF条件分支判断,满足条件,则执行相关语句,不满足,则执行另外的语句。。。。多一个ELSE会多一个不满足条件,执行另外程序的

SETLL 设置低界,把条件定位到键字相对的记录号,大于或者等于因子1中说明的检索自变量的下一条记录 一般和*LOVAL连用从最初的那行数据开始读起

Leave 操作把控制从DO组转给ENDDO操作后的语句。它是跳出DO循环的意思,会执行DO之后的语句,leave一般是用在用在DO、DOU、DOUxx或者DOWxx循环中,不能在DO组外部使用

READ 读一个记录,无比较.read无比较的意思是其前面无比较因子(变数)

READE 读等于键字的记录,有比较.reade前面会有个做比较的因子(变数,检索自变量)


CHAIN从文件中随机检索,chain与read虽同样是读档案找要检索的数据,但是chain用指标读时只会找一行(指标的进度:从什么地方开始读这个档案),read可找多行,如Q2的问题只需读一行数据时就可以用chain。如想确认到底是用read读还是用chain的话可先确定指标是从哪一行开始读,chain只会读一行,read可以读很多行

DOWEQ  XXX  ENDDO 执行一组满足给定条件的操作(看条件跑多次),和read相比,他可跑多次,read只能读一次

[ 本帖最后由 fengyunzi 于 2008-12-3 21:55 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP