文本搜索

Kiver 发布于2003-11-9 10:35 931 次浏览 0 位用户参与讨论   [复制分享主题]

2 q  ?! ?+ n: D6 C' o' X8 U* x
9 e) [7 {- S" ~2 O* ^9 T- S
( p2 m; K4 s& N4 w$ t, m2 \1 d5 s<%
7 F8 D" ?6 h' R/ U* VHead = "搜索"( g+ a/ N' k; Q+ E
SearchString = Request("SearchString")7 i" c: Q7 m3 O3 \  f2 O
count=0 9 T8 c- |+ L# `6 c8 X0 t
% `  }, c. l1 v
'把当前目录的实际路径转换为虚拟路径
7 J0 N, a& V/ PFunction UnMapPath( Path )7 z0 u. O) V! y! _  j
UnMapPath = Replace(Mid(Path, Len(Server.MapPath("/")) + 1), "\", "/")
5 C' f8 J2 X' n' ~End Function
2 c  v( ^0 b7 L2 C' G2 ^# J; _8 K# p

8 g/ @% S. c  qFunction SearchFile( f, s, title )
) p% T& G+ B  _/ G6 {( mSet fo = fs.OpenTextFile(f)* E% |$ V5 q, j( K1 {( B- Z* P
content = fo.ReadAll'读全部文本到content
) B8 ~0 @0 f: y! H: W: \# }7 rfo.Close; |4 K# p; P/ ?3 v# C; C
SearchFile = InStr(1, content, S, vbTextCompare) > 0 '从第一个字符开始检查content里面是否有S8 Q! d1 U, ^2 ?+ S4 z
If SearchFile Then'如果有,则提出文件TITLE存入变量4 M: q% Y( j/ D% `5 s1 `
pos1 = InStr(1, content, "<TITLE>", vbTextCompare)
3 I  J0 g' I. R- S' wpos2 = InStr(1, content, "</TITLE>", vbTextCompare)
' g$ R! h6 Y0 [6 Ytitle = ""
- B; t; x. d9 o9 @If pos1 > 0 And pos2 > 0 Then'取TITLE标记中间的字符  f6 m1 r. ?' C4 Q# B) Z$ T
title = Mid( content, pos1 + 7, pos2 - pos1 - 7 )) k+ ~# S. P( t, o3 Q
End If- E* _1 P7 S4 H8 S- @, P
End If
7 r; }+ L1 L9 nEnd Function
$ l, s- x/ A* F/ C9 T& @5 |
* o; {: k& A* dFunction FileLink( f, title )
) v* ?0 w+ l8 ?* e' ~3 s3 ^% _6 `vPath = UnMapPath( f.Path )'取路径4 _9 ?7 {5 g8 |5 ]( B! o
If title = "" Then title = f.Name'做链接& ~( M' L1 d9 Q
FileLink = "<A HREF=""" & vPath & """>" & title & "</A>"6 K) i5 a0 }: o2 P+ [
FileLink = "<UL>·" & FileLink & "</UL>"
, O! Z" x1 W- _* C1 p7 U4 QEnd Function4 \9 w5 e9 W3 x; O
+ W3 Q/ s- o: s! ~( ]9 L4 q: X) b
Sub SearchFolder( fd, s )
. k4 [3 X2 j6 {8 l  I4 }found = False
; ]; X4 w" K" F+ S9 ^For each f In fd.Files' G2 v3 f, a& [2 G3 k6 ]* N
pos = InStrRev(f.Path, "." )% F- |$ b( F' y* `
If pos > 0 Then7 ?- S- T& q. u+ _8 X7 ?1 p* W
ext = Mid(f.Path, pos + 1 )
5 P+ ?7 c% `9 gElse
* B! ?$ J. n* o9 ^" ?1 G" b* h. Fext = ""
0 g' F  h+ _7 g7 k2 m" ~+ ]End If* v) U3 b4 M) w
If LCase(ext) = "htm" Then'显示扩展名字为HTM的文件- s3 [* `! x0 h6 j) F: r
If SearchFile( f, s, title ) Then2 v4 N; w- m- A* o+ _+ E( v( l, v
Response.Write FileLink(f, title)4 I' Q/ r% ^  t) ?
count=count+1
1 w3 t+ o  [/ E8 i. i( S' Response.Write cstr(count)% s7 R6 _3 l) q
End If
7 v5 N+ P- v& x' F2 O# lEnd If
2 i6 B$ B$ i5 G4 k; U+ rNext1 o. w- T$ q9 l" _( r
, c% ~( R0 M& t9 D3 h7 B: e9 K7 h% _
For each sfd In fd.SubFolders5 P) H, _& P6 J, v% y- G# z! N* \& U
SearchFolder sfd, s
- ?4 n: p. i7 C' v/ D6 o+ {5 MNext8 A, c2 x% u$ m1 s0 O/ U/ ]
End Sub. r/ n. l; k* z, j9 G
%>8 t. s- S& x0 \  z9 V' p* J
<html>  X, K) y( E- M) L; \
8 {5 W  e: @' ^) k* r
<head>
  }! U0 M7 d# P; z5 k& O7 m<meta http-equiv="Content-Type"% k5 @  p2 D3 I
content="text/html; charset=gb_2312-80">7 ]$ U4 \! n* w4 J3 n
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
. `' C$ y! F; G7 j0 R<title><%=Head%></title>
# C" _: Y3 ~3 j/ C6 @. D</head>
2 D0 o, C0 C- B4 u
( H# M' h7 h& X' H6 X  i: k# ?& p<body bgcolor="#FFFFFF">
8 j/ g1 w  h1 p
: g+ p0 y/ l5 ^, r- k) J. @; Y<h1><%=Head%></h1>: ^- X3 T+ J; R( C$ c5 V- ^
+ U- t( C1 y3 C7 K; ?5 G5 }
<hr>
4 s$ z: i/ n& {, R3 l/ l  z
5 Q, ?4 W7 R' G<form action="search.asp" method="Get">) c1 r: {6 `7 {% r! U
<p>请输入欲搜索的内容: <input type="text"! @  N0 q; \. F$ m) G5 Z/ _' y
size="20" name="SearchString" value="<%=SearchString%>"> <input
' f1 i( [5 H6 }8 ?type="submit" value="搜索"> </p>
1 O7 d. {* I& U7 X0 A</form>
9 X+ {2 A: N! {& D( S  W<%
1 f0 R9 W2 D8 I1 Z# |: k" T7 `1 iSet fs = Server.CreateObject("Scripting.FileSystemObject")6 M" ?. C6 a/ o
Set fd = fs.GetFolder( Server.MapPath("/") ) '设置开始搜索的路径!0 V8 P0 t+ U* P0 U  o. H4 M. A

# U9 l4 |* m. c/ mIf SearchString <> "" Then
. M3 j: {) ?( Q# U3 i) s$ S1 uResponse.Write "<H2>搜索<font color=red>" & SearchString & "</font>结果如下:</H2><P>"9 r# i6 p7 _0 Z+ e2 `: z6 W
SearchFolder fd,SearchString
/ b, ^8 J+ Z6 HEnd If8 U4 I" P3 K- ~; {1 t8 \
%>/ ?8 D, ^2 z  N  ?7 W! c6 W3 _+ o
<hr>! _2 w4 G8 e/ A0 C7 v
</body>/ L2 d- [6 ^" C* Y( m
</html>9 L2 `; z9 F8 ^5 g+ L
: w/ H$ ~  ?+ L$ A# Y

9 j. ~; O* a1 d+ [: ]
您需要登录后才可以回帖 登录 | 註冊

本版积分规则

快速
回复
返回
列表
返回
顶部