标题:如何在VFP中实现汉字的快速输入和查询
只看楼主
hhxxttxsh
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-5-17
 问题点数:0 回复次数:9 
如何在VFP中实现汉字的快速输入和查询

在字段1输入汉字词组,则在字段2自动生成由各汉字拼音的首位字母组成的简码,该功能如何实现?
例如:在字段1输入“我们爱编程论坛”,则在字段2自动生成“WMABCLT”


搜索更多相关主题的帖子: VFP 汉字 输入 查询 
2006-08-03 21:35
fyyylyl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:16
帖 子:287
专家分:676
注 册:2006-5-22
得分:0 
用RMH大师的Mydll.dll
Declare String topy IN "MyDll.dll" String
Replace 拼音字段 With topy("待转换字段")

[此贴子已经被作者于2006-8-4 8:34:46编辑过]


2006-08-04 05:46
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
先建立每个字所对应的汉语拼音首字母表,然后将输入的汉字逐个进行转换。

活到老,学到老! http://www. E-mail:hu-jj@
2006-08-04 08:14
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
得分:0 
楼上的,按你的方法这个程序还用的着做吗?汉字有多少你知道吗?

用任大侠的MYDLL确实是可以实现,也可以用以下的方法

FUNCTION CHRtoPY
*****给别人代码还被误会,我把代码删除,省得烦心
RETURN cPYCHR


调用方法为
?chrtopy("这里是你的汉字")

[此贴子已经被作者于2006-8-5 16:48:33编辑过]


有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2006-08-04 18:37
hhxxttxsh
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-5-17
得分:0 

感谢各位热心帮助!
但不知“RMH大师的Mydll.dll”到哪里找?
FOWN版主的方法我试过了,没有出结果,自定义函数中间过程不运行,直接跳到了末尾。


好好学习 天天向上
2006-08-05 12:21
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
得分:0 
怎么不能用?我很少给别人代码,可给一次,还弄个像骗人的一样,下面的图就是我刚才实验的,你看一下图的左上角是执行结果,把汉字每个拼音头显示出来了。什么人啊,下次我再也不给别人代码了


有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2006-08-05 16:47
hhxxttxsh
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-5-17
得分:0 
fown斑竹辛苦了!
感谢你侠义给出了代码,但我实验的方法和你的一样,但就是出不来你实验的结果,很纳闷。
在“FUNCTION CHRtoPY”语句后任一行加入语句“?'感谢帮助'”,程序运行后并不显示该语句的输出结果,
但在“FUNCTION CHRtoPY”语句前加入上述语句,则程序运行后显示输出结果。所以我认为自定义函数中间过程没运行。
我现在对此还很纳闷。

好好学习 天天向上
2006-08-06 23:22
dgvfpdjs
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-8-8
得分:0 
*————————————chrtopy函数代码————————————————————————————————————
*参数“cHZCHR”,用来接收要转化的字符串
FUNCTION chtopy(cHZCHR)
LOCAL cPYCHR,i,j,C,HZ
cPYCHR=""
*设置排序方式为“拼音”,这个比较重要,否则程序无法正确运行
SET COLLATE TO "PINYIN"
*从b开始的每个拼音码的首字符
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) &&得到首位拼音码
j=27
ENDIF
ENDFOR
cPYCHR=cPYCHR+UPPER(C)
i=i+1
ELSE
*如果不是汉字,返回原来的字符
cPYCHR=cPYCHR+UPPER(SUBSTR(cHZCHR,i,1))
ENDIF
ENDFOR
RETURN cPYCHR
ENDFUNC

2006-08-08 16:05
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
得分:0 
程序对汉字的一级字库有效,而对二级字库好象无效?

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-08-08 16:21
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
这年头自以为是的人太多了

坚守VFP最后的阵地
2014-11-20 14:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-81972-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.658068 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved