gpt4 book ai didi

ibm-midrange - ILE RPG 程序无法编译

转载 作者:行者123 更新时间:2023-12-04 05:17:34 25 4
gpt4 key购买 nike

我是 ILE RPG 的新手。今天,我开始从我的工作中整理书籍。在其中一章中有一些使用子字符串函数 %SUBSTR 的示例。这是代码:

DMOD              S              5    INZ('VWXYZ')                     
DCON S 5 INZ('abcde')
DLENGTH S 5 0 INZ(2)
DSTART1 S 5 0 INZ(3)
DSTART2 S 5 0 INZ(4)
D*
C mod DSPLY
C con DSPLY
C start1 DSPLY
C start2 DSPLY
C length DSPLY
C*
C EVAL %SUBST(mod:3:2) = con
C*
C EVAL %SUBST(mod : 3 : 2) = %SUBST(con : 4 : 2)
C*
C EVAL %SUBST(mod:start1:length) =
C %SUBST(con:start1:length)
C*
C EVAL %SUBST(mod:start1-1:length) =
C %SUBST(con:start2/2:length+1)
C*
C MOVE *ON *INLR

编译时,执行异常提示函数%SUBST参数错误。确切地说:第二个参数是错误的。我只在最后一个 EVAL 中得到这个错误。

最佳答案

您正在与 RPG 的 precision rules 发生冲突...

/运算符不是整数除法,它是数字,结果有小数位。

您需要明确控制表达式的结果类型:

DMOD              S              5    INZ('VWXYZ')                          
DCON S 5 INZ('abcde')
DLENGTH S 5 0 INZ(2)
DSTART1 S 5 0 INZ(3)
DSTART2 S 5 0 INZ(4)
D*
C mod DSPLY
C con DSPLY
C start1 DSPLY
C start2 DSPLY
C length DSPLY
C*
C EVAL %SUBST(mod:3:2) = con
C*
C EVAL %SUBST(mod : 3 : 2) = %SUBST(con : 4 : 2)
C*
C EVAL %SUBST(mod:start1:length) =
C %SUBST(con:start1:length)
C*
C EVAL %SUBST(mod:start1-1:length) =
C %SUBST(con:%int(start2 / 2):length+1)
C*
C MOVE *ON *INLR

关于ibm-midrange - ILE RPG 程序无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39273504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com