首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

vfp怎么取得汉字的全拼,不是缩写

2012-02-12 
vfp如何取得汉字的全拼,不是缩写。是不是要导出winpy.txt 再做处理?如果是这样,还有别的方法吗?[解决办法]

vfp如何取得汉字的全拼,不是缩写。
是不是要导出winpy.txt 再做处理?
如果是这样,还有别的方法吗?


[解决办法]
有一个 PinYin.Dll 可以返回全拼和简拼

*------------------------------

***需要一个Pinyin.dll

*返回汉字的拼音(全拼)
*语法:GetPY('字符串','前导字符')
*示例:?GetPY('都是中国人','') &&返回值:dou shi zhong guo ren


*返回汉字的拼音首字母(简拼)
*语法:GetPYL('字符串')
*示例:?GetPYL('都是中国人','') &&返回值:dszgr


Function GetPY &&返回汉字的拼音(全拼)
Parameters mtext,ms
Declare Long GetPinYin In "pinyin.dll" String ,String ,String
ss=Space(200)
GetPinYin(@ss,mtext,ms)
Return ss
Endfunc

Function GetPYL &&返回汉字的拼音首字母
Parameters mtext
Declare Long GetPinYinLeader In "pinyin.dll" String ,String
ss=Space(200)
GetPinYinLeader(@ss,mtext)
Return ss
Endfunc
[解决办法]
尾部那个符号问题,因返回的是一个 AsciiZ 串,所以改成这样既可: 

vfp9: 

Function GetPY 
Parameters mtext, ms 
Declare Long GetPinYin In "c:\pinyin.dll" String,String,String 
ss = Replicate(chr(0),50) 
GetPinYin(@ss,mtext,ms) 
Return Rtrim(ss, chr(0)) 
Endfunc 

vfp6: 
改 Return Rtrim(ss, chr(0))
为 Return Left( m.ss, At(Chr(0),m.ss)-1 ) 

热点排行