站长学院通行证

 

返回“站长学院”网站首页

 当前位置 → 中国站长学院网络编程Asp编程 → 浏览正文


TAG:  ASP 检索 教程 编程

用ASP做全文检索


作者:中国站长学院(整理)     来源:互联网转载     点击数:     更新时间:2007年12月25日

【字体: 】           【背景色 杏仁黄 秋叶褐 胭脂红 芥末绿 天蓝 雪青 灰 银河白(默认色) 】    【收藏本文】   【打印


摘要:通过词句查找相关的全文是浏览器端常用的方法,ASP类似于CGI,也可以进行简单的文本方式全文检索
  关键词:ASP检索Intranet网页ADO数据源
  在Internet/Intranet上对某类信息做详细浏览和全文检索也是常碰到的情况。ASP是微软公司开发的用于制作动态Web页的一种服务器端
脚本型式(或曰编写环境)。它使用VBscript或Javascript等简易的脚本语言,集成在HTML码中,在服务器端响应浏览器端请求而执行数据访
问和过程(或对象)调用并产生浏览器端执行的脚本语言。本文介绍用ASP编写全文检索代码的方法。
  方法介绍:
  确定被检索的文件。将它们保存在同一文件夹中。文件的类型可以是任何文本类型(包括.htm网页文件类型)
  建立被检索文件的信息库。其中主要包含文件名,文件标题等。
  用ADO方式访问数据库。建立记录集对象。
  逐个打开记录集中当前记录所指向的文件。用查找的字串对文件的全文本进行匹配比较。
  将符合条件的文件标题输出到客户端Web页,并加入指向该文件的超链,以供用户选择浏览。
  技术要点:
  数据源。要在创建脚本之前,利用Windows95控制面板中的ODBC指定要访问的数据库及其驱动程序,以数据源名(DSN)标识之。
  匹配字串的长度。由于浏览器端的数据经过编码传到服务器端,ASP通过其内建对象Request取得的数据也并非完全是用户输入的有用信息
,所以要加以处理。可以在输入字串后附加一标志字符(如#或chr(7))。本文则采取另一种方法,即计算有效信息的长度。从而截取所需的
字串。
  创建脚本的文件系统对象scripting.FileSystemObject,从而打开文本流以读入。
  特点:
  直接对.htm文件进行全文检索,省却许多转换过程。.htm文件又用于网页的显示,一举两得。
  应用ASP,简单明了,易于实现。
  本例ASP代码:
  〈%@LANGUAGE="VBscript"%〉
  〈html〉
  〈head〉
  〈metaNAME="GENERATOR"Content="MicrosoftFrontPage3.0"〉
  〈metaHTTP-EQUIV="Content-Type"content="text/html;charset=gb_2312-80"〉
  〈title〉DocumentTitle〈/title〉
  〈metaname="MicrosoftBorder"content="tl,default"〉〈/head〉
  〈bodyBACKGROUND="/ie/images/watermrk.gif"BGPROPERTIES="FIXED"BGCOLOR="#00FFFF"〉
  〈%
  mousepointer=13
  SetConn1=Server.CreateObject("ADODB.Connection")
  conn1.open"DSN=cznj"
  Setrcst1=conn1.execute("SELECT*FROMpages_catalogue")
  sch_str=request.form("text1")
  doubbytes=len(sch_str)\2
  sch_str=left(sch_str,doubbytes)
  Response.Write"〈strong〉〈CENTER〉〈H2〉查找结果〈/H2〉〈HR〉〈Br〉〈/strong〉"
  Dimresult
  result=false
  Response.Write"〈UL〉"
  dowhilenotrcst1.eof
  tit=rcst1.fields("file_title")
  fn=rcst1.fields("file_name")
  file_name=Server.MapPath("/")&"\njweb\private\"&fn
  to_find=text_match(file_name,sch_str)
  ifto_findthen
  url="private/"&fn
  Response.Write"〈LEFT〉〈LI〉〈H4〉〈AHREF="&url&"〉"&tit
  endif
  rcst1.movenext
  result=resultorto_find
  loop
  Response.Write"〈/UL〉"
  ifnotresultthen
  Response.Write"〈H3〉〈I〉未找到!〈/I〉〈/H3〉"
  endif
  mousepointer=0
  %〉
  〈scriptRUNAT="Server"LANGUAGE="VBscript"〉
  functiontext_match(filename,search_string)
  dimretstring
  dimfind_pos
  Dimfso,a
  dimdone
  text_match=false
  Setfso=Server.CreateObject("scripting.FileSystemObject")
  Seta=fso.OpenTextFile(filename,1,FALSE)"ForReading--〉1
  done=a.AtEndOfStreamortext_match
  DoWhilenotdone
  retstring=a.ReadLine
  find_pos=instr(retstring,search_string)
  iffind_pos〉0thentext_match=true
  done=a.AtEndOfStreamortext_match Loop
  a.Close
  endfunction
  〈/script〉
  〈/body〉
  〈/html〉

责任编辑:赤色金刚

注册投稿

收藏本文到  >>>

相关文章

土豆丫头非常好用留言板 v1.305/31 
两个人的日记 v1.205/31 
lccyblog v2.005/31 
ASBLOG傲胜博客(个人版) v205/31 
行业多频道留言系统 v1.105/31 
商用多栏目留言反馈系统CommonM05/31 
童真岁月留言本 v2.0 05/31 
浪人留言簿 v1.005/31 
清松网络日记本 v1.7105/31 
ACTCMS网站管理系统 V2.006/01 
Discuz!NT 2.0正式开源 04/13 
模板教程【Pagetitle 标记】04/11 
模板教程【Prenext 标记】(十04/11 
模板教程【Pagebreak 标记】04/11 
模板教程【Pagelist 标记】(04/11 
模板教程【List 标记】(十一)04/11 

推荐导读

热门资讯

资讯快报

论坛新贴

返回首页

关于我们 - 帮助(?) - 广告服务 - 诚征英才 - 友情链接 - 网站地图 - 站长BLOG

返回网站顶部

Copyright © 2007 中国站长学院(CNZZXY.COM). All Rights Reserved
站长学院服务资咨热线:0755-84289786    业务合作:(0)13554938953  (0)13423986856    网络宽带及主机提供:深圳傲网科技
粤ICP备08006968号   站长:忧郁的秋天(向管理员发邮件)   站长交流QQ群①:1815595   站长交流QQ群②:32960074