上一篇 | 下一篇

制作一个个人搜索引擎(源码)

发布: 2008-6-27 11:49 | 作者: admin | 来源: | 查看: 0次

<%

Response.Buffer=True

'

' OneFile Search Engine (ofSearch v1.0)

' Copyright ?000 Sixto Luis Santos

' All Rights Reserved

'

' Note:

' This program is freeware. This program is NOT in the Public Domain.

' You can freely use this program in your own site.

'

' You cannot re-distribute the code, by any means,

' without the express written authorization by the author.

'

' Use this program at your own risk.

'

' Globals --------------------------------------

' ----------------------------------------------

Const ValidFiles = "htmltxt"

Const RootFld = "./"

Dim Matched

Dim Regex

Dim GetTitle

Dim fs

Dim rfLen

dim RootFolder

Dim DocCount

Dim DocMatchCount

Dim MatchedCount

' ----------------------------------------------

' Procedure: SearchFiles()

' ----------------------------------------------

Public Sub SearchFiles(FoldERPath)

Dim fsFolder

Dim fsFolder2

Dim fsFile

Dim fsText

Dim FileText

Dim FileTitle

Dim FileTitleMatch

Dim MatchCount

Dim OutputLine

' Get the starting folder

Set fsFolder = fs.GetFolder(FolderPath)

' Iterate thru every file in the folder

For Each fsFile In fsFolder.Files

' Compare the current file extension with the list of valid target files

If InStr(1, ValidFiles, Right(fsFile.Name, 3), VBTextCompare) > 0 Then

DocCount = DocCount + 1

' Open the file to read its content

Set fsText = fsFile.OpenAsTextStream

FileText = fsText.ReadAll

' Apply the regex search and get the count of matches found

MatchCount = Regex.Execute(FileText).Count

MatchedCount = MatchedCount + MatchCount

If MatchCount > 0 Then

DocMatchCount = DocMatchCount + 1

' Apply another regex to get the html document's title

Set FileTitleMatch = GetTitle.Execute(FileText)

If FileTitleMatch.Count > 0 Then

' Strip the title tags

FileTitle = Trim(replace(Mid(FileTitleMatch.Item(0),8),"","",1,1,1))

' In case the title is empty

If FileTitle = "" Then

FileTitle = "No Title (" & fsFile.Name & ")"

End If

Else

' Create an alternate entry name (if no title found)

FileTitle = "No Title (" & fsFile.Name & ")"

End If

' Create the entry line with proper formatting

' Add the entry number

OutputLine = " " & DocMatchCount & ". "

' Add the document name and link

OutputLine = OutputLine & ""

OutputLine = OutputLine & FileTitle & ""

' Add the document information

OutputLine = OutputLine & "
Criteria matched " & MatchCount

& " times - Size: "

OutputLine = OutputLine & FormatNumber(fsFile.Size / 1024,2 ,-1,0,-1) & "K bytes"

OutputLine = OutputLine & " - Last Modified: " & formatdatetime

(fsFile.DateLastModified,vbShortDate) & "
"

' Display entry

Response.Write OutputLine

Response.Flush

End If

fsText.Close

End If

Next

字号: | 推荐给好友

61/6123456>

评分:0

我来说两句