免费注册 查看新帖 |

Chinaunix

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

请问: 在rpgle中,分解数组时,汉字怎样处理? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-22 15:54 |只看该作者 |倒序浏览
例如:
D DATA                         11    DIM(2)         
D  code                           1    OVERLAY(DATA:1)
D  name                        10    OVERLAY(DATA:2)
C     *entry        Plist                                       
C                       parm                    abc              25
C*MOVE                                                         
C*ABC='1张三abcdef2李四123456'
C                  MOVEA     ABC     data
debug
EVAL DATA                  
DATA OF (1) = '1 张三 abcd'  
DATA OF (2) = 'ef2 李四 12'  
但想要的结果应该是
DATA OF (1) = '1 张三abcdef'
DATA OF (2) = '2 李四123456'


怎样处理接收的汉字?

[ 本帖最后由 chinagirlwang 于 2006-5-22 17:29 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-05-22 16:02 |只看该作者
用X'OE'       X'OF'判断汉字的前导空格和后导空格后,就比较好处理了

论坛徽章:
0
3 [报告]
发表于 2006-05-22 16:08 |只看该作者
但是,一旦  MOVEA     ABC     data 就不对了。
是不是要在 movea之前就 对 ABC进行处理?

论坛徽章:
0
4 [报告]
发表于 2006-05-22 16:31 |只看该作者
ABC里能放那么多? 22的长度,'1张三abcdef2李四123456',不算OE,OF正好22,算上OE,OF就不止了
DEBUG时看一下,里面到底放了多少数据进去

论坛徽章:
0
5 [报告]
发表于 2006-05-22 17:30 |只看该作者
原帖由 fxf_china 于 2006-5-22 16:31 发表
ABC里能放那么多? 22的长度,'1张三abcdef2李四123456',不算OE,OF正好22,算上OE,OF就不止了
DEBUG时看一下,里面到底放了多少数据进去


我以修改长度,但汉字问题还是存在。

论坛徽章:
0
6 [报告]
发表于 2006-05-23 08:53 |只看该作者
汉字一定会有OE,OF,再定义数组大小的时候必须要考虑到
现在每个数组元素定义为11,那肯定放不下'1 张三abcdef'
如果想放下'1 张三abcdef' ,那长度定义成13不就好了?

论坛徽章:
0
7 [报告]
发表于 2006-05-23 09:25 |只看该作者
原帖由 fxf_china 于 2006-5-23 08:53 发表
汉字一定会有OE,OF,再定义数组大小的时候必须要考虑到
现在每个数组元素定义为11,那肯定放不下'1 张三abcdef'
如果想放下'1 张三abcdef' ,那长度定义成13不就好了?


严重同意。

论坛徽章:
0
8 [报告]
发表于 2006-05-23 09:51 |只看该作者
原帖由 fxf_china 于 2006-5-23 08:53 发表
汉字一定会有OE,OF,再定义数组大小的时候必须要考虑到
现在每个数组元素定义为11,那肯定放不下'1 张三abcdef'
如果想放下'1 张三abcdef' ,那长度定义成13不就好了?


定义成13,如果是英文名,就不对了。
我现在的做法是:不用数组了。定义了一临时表,固定长度一对一的分解.因为我的abc的数据来源是pc上传过来的数据包,里面的汉字没有空格。

论坛徽章:
0
9 [报告]
发表于 2006-05-23 10:28 |只看该作者
原帖由 chinagirlwang 于 2006-5-23 09:51 发表


定义成13,如果是英文名,就不对了。
我现在的做法是:不用数组了。定义了一临时表,固定长度一对一的分解.因为我的abc的数据来源是pc上传过来的数据包,里面的汉字没有空格。



D  name                        13    OVERLAY(DATA:2)   varying
不知道可以不?

[ 本帖最后由 pl421 于 2006-5-23 10:29 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2006-05-23 10:42 |只看该作者
PC上是11位的?
如果PC上是'我1我1我1我'的话,到400里就变成19位的了
反正在400端对应的长度要考虑到有可能的最大长度
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP