如何做一个文本搜索?_编程10000问

<%
head = "搜索"
SearchString = Request("SearchString")
count=0

Function UnMapPath( Path )
    UnMapPath = Replace(Mid(Path, Len(Server.MapPath("/")) + 1), "\", "/")<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

' 把当前目录的实际路径转换为虚拟路径.
End Function

Function SearchFile( f, s, title )
  Set fo = fs.OpenTextFile(f)
  content = fo.ReadAll

' 把全部文本读到content.
  fo.Close
  SearchFile = InStr(1, content, S, vbTextCompare) > 0

' 从第一个字符开始检查content里面是否有S.
  If SearchFile Then

' 如果有,则提出文件title存入变量.
      pos1 = InStr(1, content, "<title>", vbTextCompare)
      pos2 = InStr(1, content, "</title>", vbTextCompare)
      title = ""
      If pos1 > 0 And pos2 > 0 Then

' 取title标记中间的字符.
        title = Mid( content, pos1 + 7, pos2 - pos1 - 7 )
      End If
  End If
End Function

Function FileLink( f, title )
  vPath = UnMapPath( f.Path )

' 获取路径.
  If title = "" Then title = f.Name

' 做个链接.
  FileLink = "<A HREF=""" &  vPath & """>" & title & "</A>"
  FileLink = "<UL>·" & FileLink & "</UL>"
End Function

Sub SearchFolder( fd, s )
  found = False 
  For each f In fd.Files
      pos = InStrRev(f.Path, "." )
      If pos > 0 Then
        ext = Mid(f.Path, pos + 1 )
      Else
        ext = ""
      End If
      If LCase(ext) = "htm" Then

' 显示扩展名字为HTM的文件.
        If SearchFile( f, s, title ) Then
            Response.Write FileLink(f, title)
            count=count+1
            Response.Write cstr(count)
        End If
      End If
  Next

  For each sfd In fd.SubFolders
      SearchFolder sfd, s
  Next
End Sub
%>
<html>

<head>
<meta http-equiv="Content-Type"
content="text/html; charset=gb_2312-80">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title><%=head%></title>
</head>

<body>

<h1>星河影动之无敌文本搜索<%=head%></h1>

<hr>

<form action="search.asp" method="Get">
    <p>请输入想要搜索的内容: <input type="text"
    size="20" name="SearchString" value="<%=SearchString%>"> <input
    type="submit" value="搜索"> </p>
</form>
<%
Set fs = Server.CreateObject("Scripting.FileSystemObject")
Set fd = fs.GetFolder( Server.MapPath("/") ) 

' 设置开始搜索的路径.

If SearchString <> "" Then
  Response.Write "<H2>搜索<font color=red>" & SearchString & "</font>结果如下:</H2><P>"
  SearchFolder fd,SearchString
End If
%>
<hr>
</body></html>

[1]

时间: 2024-08-18 04:32:01

如何做一个文本搜索?_编程10000问的相关文章

如何显示一个文本文件?_编程10000问

 Write(StrING) WriteLine(StrING) WriteBlankLines(LINES)  <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 〈html〉 〈head〉 〈http-equiv="Content-Type" content="text/html; charset=gb2312"〉 〈title〉

如何通过表单创建一个Word?_编程10000问

docform.htm<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> <form action="doccreate.asp">姓名: <input type="text" name="Name" size="50" maxlength="100">

如何做一个检索结果带链接的检索?_编程10000问

如何做一个检索结果带链接的检索?<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> <% data=request.form("search_data") ' 从FORM变量集得到要查询的文件名称所要包含的字符串 p=search_folder(data,"http://jack/cgi-bin","c:\intels

如何制作一个防止多次刷新计数的图片计数器?_编程10000问

请问如何做一个专业的图片计数器? <% countlong=8     ' 定义计数器位数. On Error Resume Next     ' 忽略所有的错误. count=server.mappath(count.txt) set cou = server.createobject(scripting.filesystemobject) set out=cou.opentextfile(count,1,false,false) counter=out.readline out.close

如何制作一个Web日程安排表?_编程10000问

chunfeng.asp<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> ' 该页面可以看到已安排了哪些事情,并在底部链接可按月前后翻动. ' 该代码包含获得数据连接的函数,如果数据源一旦有变化,则只有一个位置需要编辑连接信息(服务器.用户和口令).   <@ LANGUAGE="VBscript"   ENABLESESSIONSTATE =

如何用FileSystemObject组件来做一个站内搜索?_编程10000问

searchpage.htm' 搜索页面. <html><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> <head>        <title>千花飞舞之站内搜索引擎</title>    </head>    <body>        <CENTER>            <

如何做一个只搜索本网站的引擎?_编程10000问

searchfiles.html <html> <head> <title>撼雪喷云之本网搜索引擎</title> </head> <body> <form method="POST" action="cgi-bin/searchfiles.asp">   <table border="0" cellpadding="5" bgcolor

如何做一个文本书写器?_编程10000问

<%function WriteToFile(FileName, Contents, Append)on error resume next if Append = true then  iMode = 8else   iMode = 2end ifset oFs = server.createobject("Scripting.FileSystemObject")set oTextFile = oFs.OpenTextFile(FileName, iMode, True)oTe

如何做一个计数器并让人家申请使用?_编程10000问

第一步,创建一个计数器(最简单的数字计数器,不是图片式的): <% @language="vbscript" %>  <%  set fsFilesys=CreateObject("Scripting.FileSystemObject") set myText=fsFilesys.OpenTextFile(Server.MapPath("/count")&"\count.txt")count=myTe