免费注册 查看新帖 |

Chinaunix

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

用rpgle如何实现%abs函数???一直没想出来,求高手!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-01 20:53 |只看该作者 |倒序浏览
如题,先谢谢了。。。

论坛徽章:
0
2 [报告]
发表于 2011-12-02 09:26 |只看该作者
不知道你在说什么

论坛徽章:
0
3 [报告]
发表于 2011-12-02 12:11 |只看该作者
小于0,乘-1不就可以了。

论坛徽章:
0
4 [报告]
发表于 2011-12-02 15:07 |只看该作者
C                   Z-ADD     *ZERO         FIELD1            4 0      
C                   Z-ADD     -100          FIELD1                     
C     FIELD1        DSPLY                                               
C                   EVAL      FIELD1 = %ABS(FIELD1)                     
C     FIELD1        DSPLY                                               

刚才试了下 好用 不知道是不是你想要的  很久没有RPG4 了

论坛徽章:
0
5 [报告]
发表于 2011-12-03 10:23 |只看该作者
崩溃啊。。。大家貌似没明白我的意思!

如果%ABS(PARM1)是一个rpgle的函数,那么在函数中如何定义parm1呢?
因为parm1可以有多种类型。。。
如:10s 2
      10s 1
      15p 2
      ...
      ...
      ...

论坛徽章:
0
6 [报告]
发表于 2011-12-03 13:17 |只看该作者
定义一个满足你需要的数值型,如15S5,然后去传就可以了,前提是你%ABS(PARM1)的PARM1也是一样的定义

论坛徽章:
0
7 [报告]
发表于 2011-12-03 14:15 |只看该作者
不就是取绝对值吗? 还是不明白你的问题是什么...

论坛徽章:
0
8 [报告]
发表于 2011-12-04 17:53 |只看该作者
估计楼主是想问怎么实现类似的功能,只要在pr和pi处定义返回,并在RETURN的时候,将值返回即可。
函数如下定义:
D IYR74           pr          1024    varying        
D  pOrgString                 1024    varying  value
D  pStarPos                      5P 0 value         
D  pLength                       5P 0 value         
D*                                                   
P IYR74           B                   EXPORT         
D IYR74           pi          1024    varying        
D  pOrgString                 1024    varying value  
D  pStarPos                      5P 0 value         
D  pLength                       5P 0 value         

C                   RETURN    P@SUBSTR


这样调用:
EVAL      W@STR = #SUBST(W@STR1 : W@STRPOS : W@LEN)

论坛徽章:
0
9 [报告]
发表于 2011-12-05 14:27 |只看该作者
回复 8# roden


    谢谢。。。。有思路了

论坛徽章:
0
10 [报告]
发表于 2011-12-05 20:37 |只看该作者
貌似还不行啊。。。。谁能提供一些思路呢?
有高手用rpgle做过类似的函数吗???
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP