代码物语(七):船舶工程英汉汉英词汇检索(2008)

这是一个很有趣的小应用,核心的代码不过70行。

烟酒僧时的课题差点就和船舶打交道了,在最后关头转向另外一个领域。在查阅一些船舶资料时,深深被那些专业词汇所困扰。后来在网上找到一个Excel文件,也就是下面提供的代码包里的“船舶工程英汉词典.xls”,打开后立即感到可以做成一个web检索版。

使用最熟悉的asp,不过两个文件即实现。其中find.asp是检索入口,实际上不承担检索任务,只负责将参数传递给查找页面,基本没有动态代码。核心的检索页面返回的结果是xml文本。下面两句代码很重要,它让asp返回一个utf-8编码的xml文本:

Response.ContentType="text/xml"
Response.Charset="utf-8"

英文关键字采用的前缀匹配,MSSQL使用PATINDEX(在Acess中采用InStr来代替)返回的位置值来判断

rs.open("select id,EN,CH from Dict where PATINDEX('%"&queryword&"%',EN)=1")  '前缀匹配,MSSQL
rs.open("select id,EN,CH from Dict where InStr(EN,'"&queryword&"')=1")  '前缀匹配,Access

中文采用关键字匹配。啥都没输入点击查询可以查到全部词条

在写前端的时候用上数据岛绑定,整个页面非常简洁。但仅有IE支持数据岛绑定,FireFox无法显示出xml文档中的数据。

代码下载:shipDict.zip,默认使用Acess数据库,使用MSSQL需要自己导入并修改result.asp文件

说明:
find.asp 检索入口
result.asp 检索程序
船舶工程英汉词典.xls 原始的词典数据来源,相同的英文词条第二条英文缺失,导入到数据库后需要运行update.asp修正
shipDict.mdb 词典数据库
update.asp 词典数据库修正程序,修正英文缺失。修正完毕后可以删掉
dict.xml xml格式的全部词条,仅供参考

有时候完成一些有趣的事,仅需要几十行代码,这大概也是编程的乐趣之一吧。

2010年4月2日 | 归档于 程序
标签: , ,
  1. 2012年12月24日 18:04 | #1

    回想起来,这不就是RESTful理念嘛,只不过返回的结果是xml格式

发表评论

XHTML: 您可以使用这些标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: