当前位置: 代码迷 >> PB >> 取得汉语拼音首字母,该怎么处理
  详细解决方案

取得汉语拼音首字母,该怎么处理

热度:174   发布时间:2016-04-29 09:12:56.0
取得汉语拼音首字母
PB如何实现取得汉语拼音首字母,我从网上下载了ShuChinese.dll,但是不会用。


请详细说明使用方法。
这个,DLL可以做"汉字->拼音"的转换(全部拼音或拼音首字,支持多音字);GB码下 "简体字<->繁体字" 转换;"GB码<->BIG5码"转换;"ANSIC<->Unicode"转换

具体用法和说明,烦在PB5-PB9开发环境中IMPORT "uo_shu_chinese.sru",DEMO参见ABOUT函数.
PB10-PB11 开发环境中IMPORT "uo_shu_chinese_for_10x.sru",感谢 sun jie<[email protected]>提供PB10的DEMO,谢谢!

没看懂

------解决方案--------------------
在实例变量中申明
uo_shu_chinese_for_10x iuo_chinese
在脚本中调用
iuo_chinese.uf_hz_2_first_py('汉字')
------解决方案--------------------
uo_shu_chinese_for_10x luo_chinese
if not IsValid(luo_chinese) then
luo_chinese = Create uo_shu_chinese_for_10x
end if
messagebox('汉字取拼音首位',luo_chinese.uf_hz_2_first_py("重庆重要"))
if IsValid(luo_chinese) then
Destroy luo_chinese
end if
------解决方案--------------------
你下载的有两个版本的uo对象,如果是PB9以下的就用uo_shu_chinese.首先将DLL文件拷贝到你的开发目录。前面你已经将uo_shu_chinese导入到应用中,那你应该在库管理界面中找到uo_shu_chinense这个对象。那就好了,按上面我说的调用即可。
只是在实例变量中申明是ue_shu_chinense iuo_chinese,后面的实例变量名称随你变,当然调用时要用你定义的实例变量名就是。
在发布你的应用时,要将ShuChinese.dll一并安装到客户端!
------解决方案--------------------
ALTER function [dbo].[fun_getPY](@str nvarchar(4000))
returns nvarchar(4000)
as
begin
declare @word nchar(1),@PY nvarchar(4000)
set @PY=''
while len(@str)>0
begin
set @word=left(@str,1)
--如果非汉字字符,返回原字符
set @[email protected]+(case when unicode(@word) between 19968 and 19968+20901
then (select top 1 PY from (
select 'A' as PY,N'驁' as word
union all select 'B',N'簿'
union all select 'C',N'錯'
union all select 'D',N'鵽'
union all select 'E',N'樲'
union all select 'F',N'鰒'
union all select 'G',N'腂'
union all select 'H',N'夻'
union all select 'J',N'攈'
union all select 'K',N'穒'
union all select 'L',N'鱳'
union all select 'M',N'旀'
union all select 'N',N'桛'
union all select 'O',N'漚'
union all select 'P',N'曝'
union all select 'Q',N'囕'
union all select 'R',N'鶸'
union all select 'S',N'蜶'
union all select 'T',N'籜'
union all select 'W',N'鶩'
union all select 'X',N'鑂'
union all select 'Y',N'韻'
union all select 'Z',N'咗'
) T 
where word>[email protected] collate Chinese_PRC_CS_AS_KS_WS 
order by PY ASC) else @word end)
set @str=right(@str,len(@str)-1)
end
return @PY
end
 
 --上面方法适用于后台执行。
------解决方案--------------------
导入uo_shu_chinese.sru
然后打开uo_shu_chinese,看看对象的AutoInstantiate属性是否勾选,没有勾选则勾选上
在需要用到的地方,写:
C/C++ code
uo_shu_chinese luo_chinesestring ls_sourcemessagebox('汉字转拼音',luo_chinese.uf_hz_2_py("重庆重要"))messagebox('汉字取拼音首位',luo_chinese.uf_hz_2_first_py("重庆重要"))messagebox('简体转繁体',luo_chinese.uf_jt_2_ft("中华人民共和国"))messagebox('繁体转简体',luo_chinese.uf_ft_2_jt("中華人民共和國"))ls_source = "中华人民共和国"ls_source = luo_chinese.uf_gb_2_big5(ls_source)messagebox('国标转BIG5码',ls_source)ls_source = luo_chinese.uf_big5_2_gb(ls_source)messagebox('BIG5码转国标',ls_source)blob lb_testlb_test = luo_chinese.uf_ansic_2_unicode(ls_source)//lb_test需要以二进制的方式显示,如写在一个磁盘文件上.ls_source = luo_chinese.uf_unicode_2_ansic(lb_test)messagebox('Aisic->Unicode->Anisc',ls_source)
------解决方案--------------------
参照这个帖子:
http://topic.csdn.net/u/20110118/15/99311c6a-e79f-4437-bf34-d33445ef6331.html
  相关解决方案