zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    移动硬盘无法识别提示需要格式化的解决办法
    Cassandra 入门(资料收集)
    [转] NoSQL生态系统
    软件项目实施问题收集(LastUpdatedOn:20141117)
    Sql server 收缩日志
    关于重构需要了解的一些原则
    C#定时任务采用线程和队列实现
    [转]我是如何带领团队开发项目的
    ASP.NET MVC 多套皮肤解决方案
    Mysql 问题汇总(不断更新中...)
  • 原文地址:https://www.cnblogs.com/PBDragon/p/1685604.html
Copyright © 2011-2022 走看看