读书人

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

发布时间: 2012-02-12 17:16:34 作者: rapoo

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 )

读书人网 >VFP

热点推荐