网络编程
位置:首页>> 网络编程>> Asp编程>> 如何做一个文本搜索?

如何做一个文本搜索?

  发布时间:2010-07-12 19:00:00 

标签:文本搜索,asp

如何做一个文本搜索?

 比较简单,见下:

<%
Head = "搜索"
SearchString = Request("SearchString")
count=0
Function UnMapPath( Path )
    UnMapPath = Replace(Mid(Path, Len(Server.MapPath("/")) + 1), "\", "/")
' 把当前目录的实际路径转换为虚拟路径
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 bgcolor="#FFFFFF">
<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>

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com