说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在Delphi中用拼音首字符序列来实现检索功能。

HTML文档下载 WORD文档下载 PDF文档下载
在Delphi中用拼音首字符序列来实现检索功能。

在日常工作和生活中我们经常使用电子记事本查找个人通讯录信息,或在单位的应用程序中查询客户档案或业务资料,这个过程中往往需要输入大量的汉字信息,对于熟悉计算机的人这已经是一件头疼的事,那些不太熟悉计算机或根本不懂汉字输入的用户简直就望而生畏。作为对数据检索技术的一种新的尝试,作者探索使用汉字拼音的首字符序列作为检索关键字,这样,用户不必使用汉字,只须简单地键入要查询信息的每个汉字的拼音首字符即可。比如你想查找关键字“中国人民银行”,你只需要输入“zgrmyh”。作者希望通过下面的例子,为广大计算机同行起一个抛砖引玉的作用,让我们开发的程序更加便捷、好用。

---- 原理很简单,找出汉字表中拼音首字符分别为“A”至“Z”的汉字内码范围,这样,对于要检索的汉字只需要检查它的内码位于哪一个首字符的范围内,就可以判断出它的拼音首字符。

---- 程序更简单,包括3个控件:一个列表存放着所有待检索的信息;一个列表用于存放检索后的信息;一个编辑框用于输入检索关键字(即拼音首字符序列)。详细如下:

---- 1.进入Delphi创建一个新工程:Project1

---- 2.在Form1上创建以下控件并填写属性:

控件类型 属性名称 属性值

Edit Name Search

ListBox Name SourceList

Items 输入一些字符串,如姓名等,用于提供检索数据

ListBox Name ResultList

3.键入以下两个函数

// 获取指定汉字的拼音索引字母,如:“汉”的索引字母是“H”

function GetPYIndexChar( hzchar:string):char;

begin

case WORD(hzchar[1]) shl 8 + WORD(hzchar[2]) of

$B0A1..$B0C4 : result := 'A';

$B0C5..$B2C0 : result := 'B';

$B2C1..$B4ED : result := 'C';

$B4EE..$B6E9 : result := 'D';

$B6EA..$B7A1 : result := 'E';

$B7A2..$B8C0 : result := 'F';

$B8C1..$B9FD : result := 'G';

$B9FE..$BBF6 : result := 'H';

$BBF7..$BFA5 : result := 'J';

$BFA6..$C0AB : result := 'K';

$C0AC..$C2E7 : result := 'L';

$C2E8..$C4C2 : result := 'M';

$C4C3..$C5B5 : result := 'N';

$C5B6..$C5BD : result := 'O';

$C5BE..$C6D9 : result := 'P';

$C6DA..$C8BA : result := 'Q';

$C8BB..$C8F5 : result := 'R';

$C8F6..$CBF9 : result := 'S';

$CBFA..$CDD9 : result := 'T';

$CDDA..$CEF3 : result := 'W';

$CEF4..$D188 : result := 'X';

$D1B9..$D4D0 : result := 'Y';

$D4D1..$D7F9 : result := 'Z';

else

result := char(0);

end;

end;

// 在指定的字符串列表SourceStrs中检索符合拼音索引字符串PYIndexStr的所有字符串,并返回。

function SearchByPYIndexStr( SourceStrs:TStrings; PYIndexStr:string):string;

label NotFound;

var

i

j :integer;

hzchar :string;

begin

for i:=0 to SourceStrs.Count-1 do

begin

for j:=1 to Length(PYIndexStr) do

begin

hzchar:=SourceStrs[i][2*j-1] + SourceStrs[i][2*j];

if (PYIndexStr[j]<>'?') and

(UpperCase(PYIndexStr[j]) <> GetPYIndexChar(hzchar)) then

goto NotFound;

end;

if result='' then

result := SourceStrs[i]

else

result := result + Char(13) + SourceStrs[i];

NotFound:

end;

end;

4.增加编辑框Search的OnChange事件:

procedure TForm1.SearchChange(Sender: TObject);

var

ResultStr:string;

begin

ResultStr:='';

ResultList.Items.Text := SearchByPYIndexStr(Sourcelist.Items

Search.Text);

end;

---- 5.编译运行后,在编辑框Search中输入要查询字符串的拼音首字符序列,检索结果列表ResultList就会列出检索到的信息,检索中还支持“?”通配符,对于难以确定的的文字使用“?”替代位置,可以实现更复杂的检索。

---- 本程序在Delphi4.0中编译运行通过。

利 用Delphi 开 发 响 应 用 户 输 入 的 数 据 库 查 询Web Server 程 利用Delphi开发响应用户输入的数据库查询Web Server程序 利用Tbatch组件完成数据批处理-Delphi资料 如 何 恢 复Sybase SQL Anywhere 的 数 据 库-Delphi资料 如何捕捉KEY VIOLATION等错误-Delphi资料 如何得到SQL返回的计算结果-Delphi资料 如何动态的读取Delphi中的PopupMenu的Caption ? 如何动态设置DBGRID。比如,动态设置DBGRID的COLUMNS。及如何在数值数据格式成千分位 如何返回BDE的状态信息?-Delphi资料 如何控制关键字段的重复输入及报错-Delphi资料 如何设置Microsoft SQL Server 全文索引服务 ?-Delphi资料 如何设置多用户环境的PARADOX数据库-Delphi资料 如何实现在一个Dbgrid中显示多数据库-Delphi资料 如何用SQL查询日期型字段?-Delphi资料 如何在数据库中存放avi文件-Delphi资料 如何在注册表中注册BDE-Delphi资料 筛选数据-Delphi资料 实现不同数据库系统之间的数据转移-Delphi资料 使 用WISQL32 同 时 访 问SQL SERVER 和SYBASE 数 据 库Delphi资 使用Session构件可以在打开有密码的库时不用输入密码-Delphi资料 使用SQL实现字段数据的模糊查询-Delphi资料 数据表的索引被损坏了怎么办-Delphi资料 数据库的密码、日期显示-Delphi资料 数据库应用程序开发中图像数据的存取技术-Delphi资料 数据库中图像数据的存取技术-Delphi资料 数据库转换-Delphi资料 数据浏览部件的应用及编程-Delphi资料 数据文件路径的管理-Delphi资料 随意控制DBGrid每一行的颜色-Delphi资料 通过DELPHI实现JAVA调用ORACLE数据库数据 通过编写代码来设置数据库的别名-Delphi资料 我为什么要做个刁民? 屏幕上显示绘多条曲线,要对每条曲线单独进行操作如何实现? 怎样避开程序对softice和trw的检查 想学ACCP不知道社会的认可度? 怎样使用windowsxp/2000的修复程序? C:\winnt\下有一个hh.exe文件,有什么作用? 这首诗我觉得用在程序员身上也很合适 在WebSnap中如何实现gride的隔行显示不同颜色,就象我们现在看到的一样?? 关于《C++ Primer plus(中文版)第四版〉》,大家发表一下看法好吗。 中文文件 颜色代码转换的问题大家帮忙呀.. 程序编译问题 问一个可笑的问题。希望能得到回复 那位用过TfcShapeBtn控件? 急!从NT4到W2000后,为何ASP出错? combustion? 100分有人答了吧 WHERE TO DOWNLOAD??? c#/web,有个约一万行的参数表需用于校验页面录入的数据 帮帮忙啊,急啊 谁有dhtml的中文帮助? 如何使窗口全屏化,即不覆盖Toplevel窗口(winamp),又能覆盖任务栏? 请教各位高手,怎样将网卡的MAC地址与IP地址绑定起来,让用户不能改变? 我自己构造了一个HTTP请求头想要下载swf,但是服务器不接受请求。各位大哥帮忙看一下 简单问题 关于dll的基本问题 求求各位了,急啊(原程序问题) 这段程序问题出在哪儿? 关于防火墙编码的问题500? 明天签约,来问问工资开多少 整一年了 发个帖子吧 win98关机死机具体问题怎样既决????? 既然有了jbuilder,怎么还有人在弄什么jdk 关于正则表达式的问题("(\{)(\r\n)*(.*)(\})"),精通者请进 CreateProcess函数的应用示例 怎样才能克服电脑带来的噪音!!!,困霍很久 散分拉!!! 数据发送的实现,急用,谢谢,一定给分。 写过VB程序的朋友可以进来谈谈。 请问如何在php内刷新页面 在PB如何用setfilter()实现两种条件以上的数据过滤? 请问:.net 7张cd,怎么装?(最优) <<C++ Primer 第三版 中文版>>网友勘误+散分 关于Access主键的问题?请高手帮忙! 我记得有一个查看其他应用程序资源的工具? 有谁知道hookWM_ACTIVATEAPP或WM_ACTIVATE该用什么hook类型.了解消息或hook的进 水晶报表可以分栏吗 我这有250万刚整理好的邮件地址供推广网站! 请问:关于打印完毕停止走纸的问题(我就剩这点分了,谢谢) 请诸位仁兄讲讲C++的体系结构.............谢谢 一个很基础的问题,1!+2!+3!+。。。。+10!,用哪些程序可以实现!!请指教! 绝口不提中的绝是什么意思?①断②一定,哪个是?绝对其中一个 请问为什么两星体可以超光速,怎么就空间膨胀了? 潮湿反义词 绝口不提的绝是什么意思 三月桃花 两人一马 明日天涯 请具体解释清楚, 潮湿的反义词 在我感情的封锁区,有关于你,绝口不提,用英语怎么说? 请问下面这句话翻译成英语有几种译法:“好的!我们可否重来一次?” 七年级下册地理问题.求学霸.读下列气温降水分布图 表述正确的一项是 A、甲乙两地都是全年高温多雨B、 甲是热带雨林气候C、乙是热带季风气候D、乙地可能是位于马来群岛 发错 河马是食肉还是食草 英国人是我们的朋友用英语怎么翻译?有哪几种译法? 湿润的近反义词? 形容两万五千里长征的成语 定价为900元的商品,打九折后再让利40元,仍可获利10%,求进价 噪音及其控制 河马爱吃巧克力吗?电影里这么说.他们被河马袭击,有人丢了几块巧克力到河里,河马就跑开了~~是真的吗? 超光速飞船在宇宙空间中超光速飞行,在飞船里看外界的星空会是怎样?前面的星光会照亮整个视窗还是会被拉成线状?后面的星光会不会完全看不见?1倍光速和100倍光速时看到的星光样子一样 已知正比例函数y=ax的图像与反比例函数y=(6-a)/x的图像有一个交点的横坐标是1,求它们两个交点的坐标 河马怎么吃食物 太阳系还有多久就要灭亡了 这是什么东西?加湿器上的! 怎么用物理解释这个现象呢?芜湖方特乐园里面有个游乐项目叫“印第安部落”,里面的印第安老人会神奇般的消失在我们眼前,这到底为什么呢?最令我困惑的是,节目最后印第安老人消失了,他 太阳消亡,太阳系还存在吗? 加湿器加什么药物 上海轨道交通2号线虹桥火车站到火车站检票处步行大约要多少时间?上海轨道交通2号线虹桥火车站下地铁到火车站检票处步行大约要多少时间? 30万年后 太阳系会和仙女系相撞并且融为一体 人类灭亡还是未知数 但是不是处女座就从这个世界上消失了... 把一条线段分成AB,BC,CD三段,已知E为线段AB的中点,F为线段CD的中点:若AF=20cm,DE=21cm,BC=10cm,求线段AD的长度 爱惜的反义词是什么 为什么在word里打字,英文变不成中文?输入法没有问题啊 为什么控制相对性状的是等位基因? 爱惜的反义词是什么呀 有关诗词的趣事类似 雪里吟诗 秀才.县官.财主在饮酒赏月,诗兴大发,便提出以“瑞雪”为题,吟诗联句.“大雪纷纷落地,”秀才举杯起句.县官应声接着:“此时皇家瑞气!”财主摇头摆脑地吟 宇宙膨胀速度是超光速的吗? 类星体的红移速度超过光速? 急求关于诗的趣闻文章今天之内啊!急的... 是什么力量早期宇宙膨胀的远超光速 英语翻译就是说一本英语的书,全是英文哈,而我又要翻译,但不可能每个单词都查字典吧,况且又如何做笔记啊,那么多不认识的单词~ 将等体积的0.1mol/LCacl2溶液 和0.1mol/LNaoH溶液加入等量氢氧化钙粉末,最有可能溶解不完全的是哪种溶液但题目中OH浓度为0.1 沉淀溶解式中OH的浓度要平方,这样OH对沉淀的影响就小了,那为什么 常喝雪菊茶有什么负作用吗 翻译成英语:获得知识 诗中的趣事 雪菊茶是什么茶?在北京有卖的么? 求以下的反义词:爱好,爱惜,保护,悲痛,本质,成功,惩罚,出色,纯净 为什么用两根吸管喝水,一根在水中,一根在外面,不堵住在外面的那根吸管,喝水要困难些? 说明谐振腔的(倾斜)调整对激光器输出的横向光场分布花样的影响? 反义词:爱好 爱惜 保护 悲痛 本质 惩罚 出色 纯净 赞许···(30分内)爱好 爱惜 保护 悲痛 本质 惩罚 出色 纯净 单调 独特 繁忙 奉献 富强 干燥 高尚 广袤 害羞 浅陋 健壮 结实 微弱 贤惠 我的眼睛湿润了中湿润的反义词 激光器的哪些输出特性对激光加工有影响?并分别举例说明 反义词: 爱好()爱惜()本质()惩罚() 出色()纯净()单调()独特() 繁忙()奉献()干燥()高尚() 广袤() 华丽的近义词和反义词 例外的近义词,顿时的近义词,善良的反义词,朴实的反义词. 填反义词:崇高-----( )反义词;崇高-----( ) 近义词:欢欣一( ) 辛勤一( ) 反义词:华丽一( )近义词:欢欣一( ) 辛勤一( )反义词:华丽一( ) 无私一( ) 凋谢的反义词 爱惜的反义词还有朋友的反义词是啥么 梦随清水逐桃花,萍踪浪迹在天涯什么意思 奢华的近义词和反义词 绝口不提的意思是什么 天体怎样运动 潮湿的反义词是什么但是 湖南3名遇害学童集体下葬 家属呼吁加湖南警方确认杀3儿童案疑犯仅一人 动印度今日发射火星探测器 否认与中国竞克里抵沙特修补关系 大赞沙特重要战略冀中星要求公开殴打致残案复查结论被驳初生男婴医院被盗 湖北通城人民医院承冀鲁浙豫皖等地侦破多起街头“包小姐”印度今日发射火星探测器 否认与中国竞北京整形机构调查 韩国“名医”多为游“公安大V”陈里任职中央政法委 关注转基因食品标识混乱 专家建议修法对管美国白宫与国会拒绝特赦 斯诺登:说出巴基斯坦总理谢里夫呼吁寻求与塔利班对伦敦股市股指4日上涨南京富家子杀妻案被告愿赔57万 死者网传女孩食用虾和维C后猝死 记者调查机构预测四季度经济或下行 全面深化改泰国游船沉没一中国人遇难 船长逃跑打车软件夹缝生存前途未卜 “加价”功德国法兰克福股市DAX指数4日上涨2沙特和美国强调两国关系稳固未见裂痕围堵“包子”70名女粉丝机场打横幅围堵宁泽涛:你张文秀奖牌变色 知足FIFA百年最佳管理者走了尤浩落地直接躺倒 黄玉斌无奈挠头媒体:奥巴马想“学中国”不首先用核武社评:中国发首颗量子卫星为什么轰动金牌?银牌?铜牌?真是傻傻分不清里约奥运乒球女团赛:日本队获铜牌 福玩跳舞机起纠纷 海口一名男子对女生强霸气!傅海峰握拳咆哮剑指冠军 这就叫三峡文物展场活动丰富亮点纷呈重庆崽儿徐晓龙进决赛已是胜利动车最严禁烟令来了梦想课堂第八届高考圆梦行动结营 42网友声音高速路上随手扔垃圾 可罚款200元盗贼7次入室行窃 听到路人经过双腿发市食药监局公布13批次不合格食品万州农家女创业 每次转身都精彩试驾2016款奥迪Q5,平顺加速很带
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘