jem*_*rug 1 rpgle ibm-midrange
以下代码有问题: -
C eval aaCHNO=%ucs2('0000000000')
C** move w_Chano aaCHNO
C Evalr aaCHNO= %ucs2(%editc(w_Chano:'X'))
Run Code Online (Sandbox Code Playgroud)
定义:
AACHNO Char(10) CCSID(1200)
W_CHANO Packed(6,0)
Run Code Online (Sandbox Code Playgroud)
在AACHNO期待: - 0000123456但得到'bbbb123456'其中b =空白为什么?
我如何得到我想要的结果?欢呼,杰姆鲁格
操作码EVALR
不起作用MOVE
,它起作用MOVE(P)
.为了获得您想要的行为,您将不得不使用%SUBST()
或连接'0's
到您的值的前面,如下所示:
C Evalr aaCHNO = %ucs2('0000000000') + %ucs2(%editc(w_Chano:'X'))
Run Code Online (Sandbox Code Playgroud)
或以自由格式使用:
evalr aaCHNO = %ucs2('0000000000') + %ucs2(%editc(w_Chano:'X'));
Run Code Online (Sandbox Code Playgroud)
注意:有几个构造实际上并没有附加类型,所以它们被定义为char()
.字符常量就是其中之一.另一个是数据结构.在使用UCS2
数据时,必须记住这一点并转换常量,并且只使用明确定义为的字段或子字段UCS2
.否则将进行转换.
归档时间: |
|
查看次数: |
97 次 |
最近记录: |