首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rpgle双字节问题

Rpgle双字节问题
EN

Stack Overflow用户
提问于 2018-03-07 09:40:30
回答 1查看 178关注 0票数 1

以下代码有问题:-

代码语言:javascript
复制
C                   eval      aaCHNO=%ucs2('0000000000')        
C**                 move      w_Chano       aaCHNO              
C                   Evalr     aaCHNO= %ucs2(%editc(w_Chano:'X'))

定义:

代码语言:javascript
复制
AACHNO            Char(10) CCSID(1200)  
W_CHANO           Packed(6,0)  

在AACHNO期待:- 0000123456但得到'bbbb123456‘在哪里b=blank为什么?

我怎样才能得到我想要的结果?干杯,杰姆格

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-07 12:55:50

操作代码EVALR不像MOVE那样工作,而是像MOVE(P)那样工作。为了获得您想要的行为,您必须使用%SUBST()或将'0's连接到您的值前面,如下所示:

代码语言:javascript
复制
C                   Evalr     aaCHNO = %ucs2('0000000000') + %ucs2(%editc(w_Chano:'X'))

或自由格式使用:

代码语言:javascript
复制
evalr aaCHNO = %ucs2('0000000000') + %ucs2(%editc(w_Chano:'X'));

注意:--有几个构造实际上没有附加类型,所以它们被定义为char()。字符常量就是其中之一。另一个是数据结构。当您使用UCS2数据时,您必须记住这一点并转换常量,并且只使用显式定义为UCS2的字段或子字段。否则,就会发生转换。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49148606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档