主题:求教:如何做拼音查询?
yin710
[专家分:0] 发布于 2010-03-11 16:10:00
各位老师好:
我想做个查询,以拼音查询,音同的在表中列出来。如查中国:第一个字母 z 是 z为字首的在表格上列出,第二个字母为 g 的,是 g 的都在表格上显示,不是的就排除乐,哪位老师指点我
回复列表 (共10个回复)
沙发
wzxc [专家分:9440] 发布于 2010-03-11 17:43:00
用一个字段来存储拼音简码。
如何获得拼音简码,请参考:
http://bbs.pfan.cn/post-289007.html
板凳
yin710 [专家分:0] 发布于 2010-03-12 08:15:00
wzxc老师好:我现在有一个字段存储拼音,另一个字段存储要查询的汉字,我试了这个代码后,提示程序或事件不能含有嵌套的过程或类定义。请老师指教,谢谢
3 楼
fyren [专家分:230] 发布于 2010-03-12 08:28:00
我有个做在这儿,在用于路名拼音查询的,源码不好弄,因为有输入框和表格两个控件,还有两个数据表,要的话,留个邮箱,一个讨论讨论,我有源码实在是太烂!
4 楼
yin710 [专家分:0] 发布于 2010-03-12 11:07:00
好呀,我要
我的邮箱是yin_jianj@126.com
5 楼
wzxc [专家分:9440] 发布于 2010-03-12 17:16:00
那个例子是个自定义函数,要存成*.prg形式,不能放到事件或方法中去。
你可存为“pyjm.prg”。
调用 时:
=pyjm('试试看')
返回结果
ssk
6 楼
moz [专家分:37620] 发布于 2010-03-12 21:10:00
Parameter cHzchr
local cPychr,i,j,C,Hz
cPychr=""
set collate to "PINYIN"
PYcode="八嚓咑妸发旮铪讥讥咔垃呣拿讴趴七呥仨他哇哇哇夕丫匝咗"
for i=1 to len(cHzchr)
if asc(substr(cHzchr,i,1))>160
Hz=substr(cHzchr,i,2)
C=""
for j=1 to 26
if substrC(Hz,1,1)<substrc(PYcode,j,1)
C=chr(96+j)
exit
endif
endfor
cPYchr=cPYchr+upper(C)
i=i+1
else
cPYchr=cPYchr+upper(substr(cHZchr,i,1))
endif
endfor
return cPYchr
7 楼
yin710 [专家分:0] 发布于 2010-03-13 10:14:00
wzxc老师:=pyjm ssk在那加呢?我在文本框代码里加了后,提示找不见pyjm的变量.moz老师的代码为什么能在文本框的代码里加呢?但提示函数的值与类型无效。请老师们指教我。谢谢
8 楼
wzxc [专家分:9440] 发布于 2010-03-13 11:59:00
是这样,要想进行汉字拼音检索,就要事先提取汉字的拼音简码并存入一个字段。在检索时以这个字段定位记录,从而达到简化查找。提取汉字拼音简码的代码我们做成自定义函数的形式,新建一个程序,输入以下代码:
Parameter cHzchr
local cPychr,i,j,C,Hz
cPychr=""
set collate to "PINYIN"
PYcode="八嚓咑妸发旮铪讥讥咔垃呣拿讴趴七呥仨他哇哇哇夕丫匝咗"
for i=1 to len(cHzchr)
if asc(substr(cHzchr,i,1))>160
Hz=substr(cHzchr,i,2)
C=""
for j=1 to 26
if substrC(Hz,1,1)<substrc(PYcode,j,1)
C=chr(96+j)
exit
endif
endfor
cPYchr=cPYchr+upper(C)
i=i+1
else
cPYchr=cPYchr+upper(substr(cHZchr,i,1))
endif
endfor
return cPYchr
保存文件名为“pyjm.prg”
假设有个表的两个字段,pinyin和hanzi。
在起初输入汉字时,我们输入一个汉字串“努力学习”,在其文本框的lostfocus事件中:
replace pinyin with pyjm(“努力学习”)
这样通过这个自定义函数将“努力学习”提取其简码“nlxx”并赋给字段pinyin。
以后再做查询时,以pinyin字段进行查找,定位纪录后,显示hanzi字段内容。
比如:
locate for pinyin=‘nlxx’
if found()
?hanzi
endif
事件、方法、类、过程、函数、自定义方法、自定义函数、自定义类。这些概念很重要。
上述自定义函数也可以做成自定义方法,写在表单里(只能本表单使用,不通用)。或者类。
9 楼
fyren [专家分:230] 发布于 2010-03-13 18:36:00
给你的邮件没收到吗?????????
10 楼
yin710 [专家分:0] 发布于 2010-03-14 09:51:00
fyren老师,你的邮件我刚收到,非常谢谢你,你做的太高深,我需要慢慢的学习,领会。再次感谢你
我来回复