PowerBuilder9对中文字符串的处理方法

PowerBuilder9对中文字符串的处理方法

环境:PowerBuilder9.03

由于PB9没有对Unicode的支持函数,处理汉字的字符串只能自己写函数处理。

以下给len()定义函数of_len()处理带汉字字符串。代码如下:

 

//
//
// 函数: of_len
//
// 属性: public   
//
// 参数: string as_str
//
// 返回: integer
//
// 功能:
// 返回字符串长度
//
//

//声明
int    li_len
int    li_p
char   lc_char
string ls_str

//赋值
ls_str= as_str
li_p  = 1

//处理
do while len(ls_str)>= li_p
    lc_char= mid(ls_str,li_p,1)   
    if asc(lc_char) >127 then       
        li_p += 2     

    li_len+= 2
    else        
         li_p  += 1

     li_len+= 1
    end if   

loop
return li_len

 

left()函数定义of_left()代替,代码如下:

 

//
//
// 函数: of_left
//
// 属性: public   
//
// 参数: string  as_str
//       integer ai_len
//
// 返回: string
//
// 功能:
// 得到字符串左部指定个数的字符
//
//


//声明
char l_ch
int li_len
string ls_str
string ls_rtn

//赋值
li_len = of_len(as_str)
if ai_len>= li_len then return as_str
ls_str= as_str
li_len= 1

//处理
do while li_len <= ai_len and len(ls_str)>=li_len
    l_ch = mid(ls_str,li_len,1)   
    if asc(l_ch) >127 then
        ls_rtn = ls_rtn + mid(ls_str,li_len,2)   
        li_len+= 2
        ai_len+= 1
    else
        ls_rtn = ls_rtn + mid(ls_str,li_len,1)   
        li_len +=1
    end if   
loop
return ls_rtn

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值