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

在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中编译运行通过。

5分钟弄懂Docker! RakNet:被OculusVR收购的跨平台游戏网络引擎 Qualcomm业务拓展副总裁沈劲:智能终端的延伸 苹果发布Xcode 6 Beta 3,Swift迎来重大更新! Linkedln技术高管Jay Kreps:Lambda架构剖析 《近匠》极光推送:聚焦巨头无法快速转身的领域 Babylon.js:拥有微软背景的开源3D游戏引擎 EMC 2014存储布局及十大新技术要点 腾讯推出零流量地图 离线实现公交步行导航 Atmel 1.4亿美元收购Newport Media 巩固物联网产品线 微信大会首批议程出炉 深度解析招行服务号是如何炼成的? 指尖上的阅读:MIT开发盲人专用设备FingerReader 从桌面到移动:异构计算翻天覆地的技术变革 《近匠》Blueware何晓阳,不做中国的New Relic 全球最杰出的14位程序员 Microsoft、RedHat、IBM、Docker等公司加入Kubernetes社区 Intel携手三星、博通等 建立物联网联盟OIC 一周消息树:微软半年内将终止对Win 7、Office 2010 SP1等产品的支持 深度神经网络DNN的多GPU数据并行框架 及其在语音识别的应用 浪潮通软GSP将打造开放平台 吸引更多ISV加入生态系统 国外安全产品再遭信任危机 安全产品国产化步伐加快 最终幻想XIV的重生--SQUARE ENIX《最终幻想14》制作人吉田直树介绍 如何打造百万级自然增长的微信HTML5应用 听邵海杨聊聊1000+台服务器背后的故事 借助Facebook、Twitter等社交平台API打造超炫酷的那些应用 Unity中Shader的开发运用实战详解,开放报名! 我从独立游戏开发学到的6件事儿 果断Mark!Searchcode——源代码搜索利器 《近匠》图灵机器人:App和移动硬件的智慧大脑 极路由发布HiWiFi OS及应用开放平台 Loom SDK框架:命令行快速开发跨平台2D游戏 请教:如何判断指定的文件夹下是否存在指定的文件. 事务的概念和特性是什么? 从程序员走向项目经理?? 编码问题,急!!! 在改变窗体大小的时候,如何让windows media player9 自适应窗体大小阿! 什么时候会触发window.onunload事件? 回答有分。java web start 是做什么用的?一安装了jdk1.4就有这个,可是我从来没用过? 为什么我用水晶报表时老告诉我未将对象引用到实例,高分 对引用的理解? vc++要交作业了,谁能帮一下忙啊 关于CSS!! 高程涨价了~~~~~~今天报名的我,身上只有111块~~~`结果只有1块了,坐车回家,身无分文,5555555 JBuilder7.0在Linux下的中文支持? 高分求救(急),在线等,请高手帮忙 一次最多只能给100分。 Apache2.0.46与tomcat-4.1.24整合问题 各位来看一下我写的这点东西,能不能找到个工作呀 比较一下:C++primer The C++ programming language 和 thinking in C++。不要只说那本好,只看过一本也近来说说看法!! 高手来帮助我阿 浏览器隐藏问题! 那位给我一个用 C# 操控注册表的详细例子或说明…… 已经辞掉了版主职务了,一个星期没有上网,这回散点分给大家. 有没有变量可以存储任何类型的图片对象? Exchange 2000 Lotus connector 大侠帮帮我! XP内存消耗问题 为什么SQL存储过程在SQL QUERY ANALYZY可以顺利执行完一个从1到1500的循环,而在PB7.0中调用时却... 如何设置按钮控制程序运行,具体看贴 网页图片显示问题(急,帮帮忙哦,在线等!) 请问一个关于visual studio.net的问题 在线求解,很急,谢谢 程序是SQL Server2000+Delphi6的三层结构,打包问题,大侠请帮忙!(200) ¥¥火星人都不会的问题!巨难!欢迎各位! 这里有没有兄弟写过“万邦“图形采集(winbond)的应用程序没有 关于输入法 为什么ASP页面关闭后,session中的值还存在呢? 到底有没有官方出的VS6.0中文版?? 请问怎样给一个buffer中所有数据清0 test 数据采集问题,高手指教!!!急 为何我修改了打印纸尺寸但不起作用? 请问大家现在MCSE的题目变了没有啊? 共同学习 高人指点一下 DataGrid如何实现如下功能? 如何在图片框中按鼠标时知道当前鼠标在图片框中的坐标?谢谢! 【骂人】destroy(只想灌的爽)进来 散分~~~~前5名!谢~ 请教两个问题,专家请进! 请问在什么地方可以找的计算机方面的中英文对照翻译? Dll向主窗口发送自定义消息? x^2-5x+7用配方证明代数值为正,并求此代数式的最小值好的话会加的 关于均匀带电球面的场强分布在球面的内部场强为零 在球面的外部的场强是有计算公式的,那么刚好在球面上的场强是多大呢? m/g 是什么意思 对于代数式x^2-2x+3,通过配方,能说明它的值一定是 均匀带电球面表面的场强是球面本身,搞不清楚唉, 硫酸从多少物质的量浓度起 算是浓的? 证明:无论x取什么值,代数式x^2-2x+2的值大于1快.快快.快快快... 马斯洛在需要层次理论中将需要分为五级: 语文看图3.4题 什么叫物理爆破 中国有几台正负电子对撞机RT 语文文言文题 看图 用配方方法证明:代数式x平方-2x+2的值不小于1 9. 北京正负电子对撞机历史和现状?主要成果有哪些? 七年级下语文书112到113看图写作怎么写要600字我书上的图看不清,糊的,污漆麻黑的55555555555555555 什么叫爆破作文 北京正负电子对撞机使质子达到的能量单位GeV 日本地震的看法快1!1急 中国大约有多少核导弹?拜托各位大神? 用英语翻译:他每周什么时间来看你?每个星期六 日本地震.看法? 中国究竟有多少枚核导弹呢大神们帮帮忙 北京正负电子对撞机在哪里?对外开放吗?物理书上提到了,但是百度地图和百科都没有详细地址啊.只有百科提到了一点点关于位置的信息,但是在地图上却找不到.确实存在,是否对外开放? 金属板与电场三块厚度均匀,长、宽和厚相等的金属板,顺着厚度方向依次排列,金属板的长、宽线度远大于板间间距.已知金属板带电量分别为Q1、Q2、Q3.在不考虑边缘效应的条件下,求各金属板 日本有核弹吗大神们帮帮忙 我现在要做一个测试工装的短路保护电路.有100来个报警器同时放在一个工装架上进行老化测试,当一个一个放上去过程中其中一个短路我能及时发现他,并且拿下来之后不影响其它报警器的测 电场 运动 金属板间如图第6题 求鸡胚骨骼肌的详细发育过程,英文的也行! 易拉罐破碎机刀片磨损的原因是什么? 电场及金属板问题一无限大金属板,上方空间距板不远处有一正电荷Q,请问:板下方空间有无电场?所有,怎样分布?如果板接地,又是怎样呢?金属板上的电荷分布对于接地和不接地又是怎样?请问, 核弹怎么造出来?真实的核弹怎么造出来? 大型正负电子对撞机是什么东西? 如何鉴别蒸馏水和稀酸溶液 鸡的生长过程描述清楚 世界各国的正负电子对撞机以及它们的应用? 计算用电量,建50个大棚,每个大棚有10个日光灯,一个日光灯为200瓦,一天工作8小时,问总共需要多少电. 酸性物质如碳酸对鸡胚发育有没有影响 正负电子对撞机是干什么用的 证明晶体中不存在5重轴 为什么说狗嘴吐不出象牙 难道人嘴里能吐出象牙感觉这话说得真是很奇怪. 正负电子对撞机的起源物理初学者,想了解有关电子对撞机的知识 集体潜意识是不是就等于人脑上网了我知道集体潜意识是什么 我问的是 我们可不可以这样理解成 大脑上网了?OK? 为什么可将病毒接种于鸡胚上? 七,看图回答下列各题. 如图是带正电的空心导体球壳.a,b,c分别为球壳外表面、球壳内和球壳内表面上得三点.这三点的电势关系是? 国产甲型H1N1流感疫苗系采用世界卫生组织(WHO)推荐的甲型H1N1流感病毒株接种鸡胚,经病毒培养、收获病毒 变压器档位的变换一台变压器.3个档位,高压分别是10750、10500、10250.低压400.假如运行位置在2档,一次电压10500V,二次电压400V.要求把二次电压降低到380V.请问.档位应该是调高一档还是调低一档. 同学或朋友之间的趣事,越多越好.我要写作文用的.要新颖一点的,有新意. We are e____to see each other at the party 选一种你最熟悉的动物,运用一至两种说明方法介绍它的外形和生活习性? 变压器能否像汽车一样有档位,在用电高峰的时候提高功率,在低峰的时候降低功率,以节约能源变压器能否象汽车一样可换档!因为春节很多人回农村导致用电上涨,但节后又回城了!所以能否让 道别晚会结束后,我们互相问候:____ ____ ____ ____ of the ____ ____,We____ ____ ____ each other. 回忆作者描写麋鹿的写作方法,从外形特点、生活习性、等方面向大家介绍一种自己熟悉的动物回忆作者描写麋鹿的写作方法,然后搜集查找资料,从外形特点、生活习性、科学价值等方面向大 有没有用英文描述的“如何预防地震或者地震前该做些什么”最好分点描述 为什么电源电动势E不断变大,电容器就不断充电电源和电容器相连 10KV高压整流变压器都做什么实验 正负电子对撞机和正负离子对撞机有什么不同?有什么作用?是指把电子或离子相撞吗?干什么的? and which by the exercise of reasonable diligence,said party is unable to prevent provided that 哪些病毒不能通过鸡胚培养 什么是"正负离子对撞机",以及其作用! 专家称地下水九成遭污染 修复一亩地最中联重科A股收跌2.94% H股股价俄富豪赠女友奢华电子香烟 镶246颗俄媒称中国和印度商定定期举行联合军演意大利父子专制冒牌名酒遭警方查获 将星巴克回应售价质疑 称在中国利润不比“秀中文”成为俄罗斯政要新时尚美国男子跑马拉松织出近4米长围巾 破文莱将实施严厉伊斯兰刑法 通奸者将被日本首相安倍表示将对离岛等土地买卖实高考降英语比重引热议 能否撬动高考改日式料理或将成非物质文化遗产 已通过美情报局局长:有关美国窃听法国电话报德媒称俄前首富霍多尔科夫斯基难获释 日本156名学者成立研究会 呼吁改善QQ群里热聊\"如何结束生命\" 2应急反应从2小时缩短为5分钟 水管理“好声音”导师汪峰开唱 不理与章子怡韩国称重启金刚山旅游需首先保障游客安北京办豪华婚宴村官身价过亿 村民曝光汪洋:中国优先推进西部大开发的决心不文化短波革命历史是传承红色基因的正能量手工毛线编织 大学生创业尚未开垦的沃老阿伦减肥体重达生涯最低:已养成夺冠麦蒂惊现火箭训练场 哈登:他教我如何列车员:与祖国同庆生日300名志愿者成中山陵动人风景希望华侨华人为促进中马友好合作再立新第三届中国 东盟汽博会在广西柳州举办习近平会见马来西亚最高元首哈利姆留守儿童科技馆里过“十一”南昌:文化大餐度国庆华中科大庆祝新闻与信息传播学院建院3银川:观菊赏石过佳节并对文莱、泰国、越南进行正式访问假日办提示关注台风预警习近平同马来西亚总理纳吉布举行会谈中央党的群众路线教育实践活动领导小组抓住机遇 续写互利合作新篇章南水北调创造世界最大U型输水渡槽美国警方打死一名冲撞白宫路障的女性司
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘