利用ASP实现三个强大功能之一为Web站点添加拼写检查功能,利用ASP实现三个强大功能之二在Web上动态建立条形码

许多开发者都提出“如何对用户输入的内容进行拼写检查”的问题,这篇文章正好提供了一
个有用的方法,讨论如何使用XDE拼写检查组件,它既可以当作拼写检查器,同时也可以做
完一个字典。关于这个组件的一个好消息是:它能够在服务器端使用,或者做为一个Java 
Applet。但是有一点,这些方便之处不是免费的,它要花费大约100美元。然而,该组件提
供了一个30天免费使用评估版本,所以在真正决定购买前,你可以仔细进行测试,认真考虑
是否满足需要。 

  这篇文章讨论的是如何根据数据库的字段在web上动态地建立条形码的问题,这在如下
的情况下非常有用:用户输入信息到系统中,然后显示一个总结页面“这就是你所输入
的”,这个页面可以被打印,并在日后可以用条形码进行跟踪。 

  在网络上为我们导航的搜索引擎使用一些小程序 — 例如我们所知道的’
robots’、’bots’、 ’crawlers’和’spiders’ — 来对页面进行索引。然而,当开
发一个站点,尤其是使用ASP进行开发时,做到防止页面被索引却是非常有用的。当这些搜
索引擎正在回顾它们对所创建的web 页面进行动态索引的方案时,例如ASP页面,本文将帮
助你学习一些重要的技巧来避免robots 跟踪那些你不情愿被它们索引的页面。 

  首先,访问
等等),下载并安装这个组件。下一步,从可供下载的XDE众多组件中选择 “Quick Spell 
Check Full Install”项目进行下载。下载完毕后,进行安装。在安装程序结束前,出现一
个注册登记菜单,这时,简单地选择默认选择“Evaluation Period”。 

  实现这个功能的关键在于如何将数值比如“ABC”翻译为条形码。这里我们使用“代码
39”,关于它的详细情况,请参阅有关定义。我想将产生的条形码显示在web页面上,这样
用户就能打印包含条形码的这个页面,然后,再在图形系统的处理中使用它。许多用户都在
系统中安装了“代码39”字体,所以我就能够在页面中改变它,但是我不想依赖它们。我想
在页面中建立,并且独立于浏览器和计算机。 

这为什么与你有关? 

  注意,现在的程序还是BETA版本。如果你不希望发生潜在的错误,我建议等第一个正式
版本出来后再下载进行试验。我已经发现了现有版本的一些错误。你要记住:这是一个BETA
版本,不要在正式站点上应用。 

  我的解决方法是:为Code39中每一个支持的字符创建GIF图形文件。我使用Microsoft 
Paint软件创建Code39字体大小的文本框,然后为每一个字符建立一个图形。接着,使用
Microsoft Image Composer将它们转换为GIF格式。最后,使用扫描软件检查这些字符,看
看是否能正确地解释。下面,你将看到A、B、C以及星号(*)的条形码: 

  比方说现在你访问了XYZ公司的Web 站点,用你所熟悉的搜索引擎对’XYZ Corp.’ 进
行搜索。如果你发现你的管理页面也在相关的链接表中的话就会有点担心了。如果你有一个
电子商务站点,你会不愿意在用户结束前面的页面之前,得到这个站点的定单部分最后一页
的url 。不仅仅是网管人员不希望发生的。对于用户来说,有些页面不能正常运行也是烦恼
的事,或者是因为他们没有适当的权限,或者因为他们没有按照设定的顺序访问页面。这样
也不利于你的站点的声誉。这与那些商业搜索引擎的经营者自身也有关系。因为他们想要提
供准确的链接来改善服务。

  接着,准备注册登记组件。现在决定一下你是否想要包含Word 97的字典和词典功能,
如果需要,请先在Web服务器上安装Word 97或者Word 2000,然后参照
 的说明执行一套特殊的命
令。如果不想使用整个Word 97的字典,就象注册其他组件一样接着进行: 

Code for A 

  那么,如何防止这些程序对你的站点的某些页面进行索引呢?有两种方法可供选择,一
是在根目录下包含一个名为robots.txt 的文件,或者是使用< META > 标记。 

  拷贝DLL文件SpellCheckServer.dll到Windows的System或者System32目录 

Code for B 

包含一个robots.txt 文件

  使用regsvr32注册组件:regsvr32 spellcheckserver.dll 

Code for C 

  早在1994年,一个自动邮件发送列表就联合提出了一个防止robots 拖拽站点的协定。
但是这并不是一个正式的标准,它不能提供执行的保证,但是却为许多robot 作者所使
用。 

  现在安装完组件,可以在ASP代码中使用了。为了创建使用拼写检查对象的示例,仅仅
简单的编写下面的代码: 

Code for Asterisk 

  创建一个robots.txt 文件非常简单,它表明网管人员所希望的robot 行为标准。注意
文件名必须用小写字母,而且必须放在站点的根文件夹中,例如
 ,这样一个文件就能带出整个站点的全部细节。 

Set objSpellCheck = Server.CreateObject(“SpellCheck.ClsChecker”) 

  然后,为了在ASP页面中描绘数据库中数值的条形码,仅仅简单地遍历BarCodeText变量
字符串中的每一个字符,然后建立< IMG SRC=“…” >标记以替换字符为相应条形码图形
文件。这非常简单,不需要在客户端安装字体文件。相关代码如下: 

一个robots.txt 文件中有什么? 

  如我前面提到的,这个组件提供了拼写检查和词典的功能。首先,来看看如何返回给定
单词的一系列同义词。这要使用到LookupSynonym方法,该方法需要一个参数,就是需要寻
找同义词的单词。执行后,拼写检查对象收集相关的单词到集合对象SynonymWords。执行下
面的代码,将返回“Quick”单词的所有同义词: 

’Code 39 barcodes require an asterisk as the start and stop characters 

  每个robots.txt 文件包含一条或多条记录。一条记录由robot 的用户代理字符串组
成,即你愿意遵循的指示和应用于它的指示。不用担心你需要知道在web中漫游的所有robot
的用户代理字符串,因为你可以用通配符* 来应用所有的robots。以下是一个记录的例
子: 

< % 

Response.write “< IMG SRC=””asterisk.gif”” WIDTH=””30″” HEIGHT=””36″”>” 

User-agent: * 

Dim objSpellChecker, iLoop 

For x = 1 to Len(Trim(rst(“BarCodeText”))) 

Disallow: /XYZfinances.asp 

’Create an instance of the SpellChecker 

Response.Write “< IMG SRC=””” & mid(rst(“BarCodeText”),x,1) & _ 

Disallow: /admin 

Set objSpellCheck = Server.CreateObject(“SpellCheck.ClsChecker”) 

“.gif”” WIDTH=””30″” HEIGHT=””36″”>” 

Disallow: /news/update.asp 

objSpellChecker.UseMSWord = False ’We’re not using MSWord 

Next 

  除了用户代理字符串/通配符,只需要包含一个disallow 命令。这一个简单的例子就显
示了你将会需要的全部可能性。它表明没有用户代理字符串能够进入 XYZfinances.asp ,
用这一行表示: 

objSpellChecker.LookupSynonym “Quick” ’Lookup the synonym for “quick” 

’Code 39 barcodes require an asterisk as the start and stop characters 

Disallow: /XYZfinances.asp 

’Loop through the returned words: 

Response.write “< IMG SRC=””asterisk.gif”” WIDTH=””30″” HEIGHT=””36″”>” 

  或者说用户代理字符串不能进入管理文件夹及其下面的所有文件夹:

Response.Write “The following synonyms for ’Quick’ exist: ” 

  如果在记录集当前记录中BarCodeText的数值是“ABC”,那么执行上述代码后,HTML的
结果是: 

Disallow: /admin 

For iLoop = 1 To objSpellChecker.SynonymWords(“Quick”).SuggestedWords.Count 

< IMG SRC=”asterisk.gif” WIDTH=”30″ HEIGHT=”36″> 

  或者是新闻文件夹中的update.asp文件,如果新闻文件夹中所有其它内容都可以被索引
的话。 

Response.Write objSpellChecker.SynonymWords(“Quick”).SuggestedWords(iLoop).word 

< IMG SRC=”A.gif” WIDTH=”30″ HEIGHT=”36″> 

  在一条记录中你愿意包含多少用户代理字符串的名字都可以。同样在任何一个
robots.txt 文件中,你愿意包含多少条记录都可以(只要用一个或多个空行分隔开这些记
录就可以)。 

发表评论