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

请问怎么吸取关键字的首拼音字母

2012-06-03 
请教如何吸取关键字的首拼音字母我建立了一个表(姓名,姓名_py),请问能不能用vfp写出这样的一个程序将姓名

请教如何吸取关键字的首拼音字母
我建立了一个表(姓名,姓名_py),请问能不能用vfp写出这样的一个程序将姓名的首位拼音字母提取出来并且自动存入这个表中呢,请问大侠!!!

[解决办法]
示例:
将WAIT WINDOW修改为UPDATE即可

WAIT WINDOW CHRTOPY('一般用')
Function CHRTOPY(Chzchr)
CPYCHR=""
Set Collate To "PINYIN" &&设置当前排序方式为拼音方式
PYCode="八嚓咑妸发旮铪讥讥咔垃呣拿讴趴七呥仨他哇哇哇夕丫匝咗" &&从b开始每个拼音码的首字符
For i=1 To Len(cHZCHR)
If Asc(Substr(cHZCHR,i,1))>160 &&判断是否为汉字
HZ=Substr(cHZCHR,i,2)
CHRTOPY=""
For j=1 To 26
If Substrc(HZ,1,1)<Substrc(PYCode,j,1) &&进行汉字比较
CHRTOPY=Chr(96+j) &&得到首位拼音码
Exit
Endif
Endfor
CPYCHR=CPYCHR+Upper(CHRTOPY)
i=i+1
Else
CPYCHR=CPYCHR+Upper(Substr(cHZCHR,i,1))
Endif
Endfor
Return CPYCHR
[解决办法]
&& 以下为文件 prgGetSpell.prg 内容
Parameters sChina
&&文 件 名: prgGetSpell.prg
&&作 者: LAN HAI
&&创建时间: 2010-07-13
&&功能简介: 获取汉字串的简拼;
&&调用须知: 需传入1个字符串参数,返回值字符串

Local i, c, sRes
sRes = ""
For i=1 To Lenc(sChina)
c = Substrc(sChina,i,1)
If IsLeadByte(c)==.T.
sRes = sRes + GetByte(c)
Else
sRes = sRes + c
EndIf
EndFor
Return sRes


Function GetByte(cWord as String)
Local sWord, sAlpha, i
sWord = "啊芭擦搭蛾发噶哈击喀垃妈拿哦啪期然撒塌挖昔压匝"
sAlpha = "ABCDEFGHJKLMNOPQRSTWXYZ"

For i=1 to Lenc(sWord)
If cWord>=Substrc(sWord,i,1) And Iif(i==Lenc(sWord), cWord<="座", cWord<Substrc(sWord,i+1,1))
Return Substr(sAlpha,i,1)
EndIf
EndFor
Return "?"
EndFunc

这样代码是不是更精炼一点? 共同探讨!

[解决办法]

VB code
*返回汉字或字符串的全拼或简拼*------------------------------***需要一个Pinyin.dll*返回汉字的拼音(全拼)*语法:GetPY('字符串','前导字符')*示例:?GetPY('都是中国人',Space(1))    &&返回值:dou shi zhong guo ren?Proper(GetPY('都是中国人',Space(1)))    &&返回值:Dou Shi Zhong Guo Ren*返回汉字的拼音首字母(简拼)*语法:GetPYL('字符串')*示例:?GetPYL('都是中国人') &&返回值:dszgrFunction GetPY &&返回汉字的拼音(全拼)    Parameters mtext,ms    Declare Long GetPinYin In "C:\pinyin.dll" String,String,String &&如果声明不成功,将能够声明机子上的 crtdll.dll 拷贝到目标机的 SYSTEM32 试试。    ss=Replicate(Chr(0),254)    GetPinYin(@ss,mtext,ms)    Return Rtrim(ss,Chr(0)) &&vfp9    *Return Strtran(ss,Chr(0),[]) &&vfp6EndfuncFunction GetPYL &&返回汉字的拼音首字母    Parameters mtext    Declare Long GetPinYinLeader In "C:\pinyin.dll" String,String    ss=Replicate(Chr(0),254)    GetPinYinLeader(@ss,mtext)    Return Rtrim(ss,Chr(0))    &&vfp9    *Return Strtran(ss,Chr(0),[]) &&vfp6Endfunc
[解决办法]
探讨
不好意思我的下载分不够,不是下载后回复就可以返还下载积分的吗,哎,老兄不好意思啊,他们没有返还我!谢谢你的回答!

引用:
大家好:因本人的下载资源分极少,所以在
http://download.csdn.net/source/2539901
里设了2分资源分;还望分多的朋友多多给予帮助,谢谢了!

为了像我一样分少的朋友能够下载,
所以7楼说……

热点排行