PowerBuilder9对中文字符串的处理方法
2010-03-14 16:45
239 查看
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
环境: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
相关文章推荐
- PHP字符串mbstring处理中文字符串的具体方法解析
- json_encode不对中文进行转码、json_decode解析json字符串返回NULL的处理方法
- c++ 中文字符串处理方法
- redis命令行查看中文不乱码的方法(十六进制字符串处理)
- c++ 中文字符串处理方法
- jni中文字符串乱码的处理方法
- 1229处理既含有中文又含有英文字符的字符串的相关程序解决方法
- web_find()函数检查中文字符串失败的处理方法
- c++ 中文字符串处理方法
- Linux 处理中文字符串 :/区分中文和英文的方法
- 简介Python中用于处理字符串的center()方法
- Python中处理字符串之endswith()方法的使用简介
- Wing IDE 显示中文乱码的处理方法
- 中文和数字字符串组合的拆分方法
- 数据库连接字符串的处理方法!加密解密连接字符串。
- 数据库连接字符串的处理方法!加密解密连接字符串。
- JAVA 中URL链接中文参数乱码的若干处理方法
- c++怎么读取文件中的中文字符串的几种方法
- 在JavaScript中处理字符串之fontcolor()方法的使用
- Qt中文字符串的设置方法