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 )