< %@LANGUAGE="VBSCRIPT " CODEPAGE="936"%>
-
ถนนสลัว
เซนต์=ตัวจับเวลา()
'************************************************ * ***********
'*************Class SearchFile สำหรับค้นหาไฟล์ฮาร์ดดิสก์ *************
'******************วิธีการโทร: *************
'************* Set newsearch=new SearchFile 'คำสั่ง******************
'******************newsearch.Folder="F:+E:"'แหล่งค้นหาที่เข้ามา**************** **
'******************newsearch.keyword="การรวบรวม" 'คำหลัก******************
'************newsearch.Search 'เริ่มค้นหา******************
'****************** ตั้งค่าการค้นหาใหม่ = ไม่มีอะไร 'สิ้นสุด ****************
'************************************************ * ***********
ไฟล์ค้นหาคลาส
dim Folders 'ผ่านเส้นทางสัมบูรณ์ ใช้เครื่องหมาย + เพื่อเชื่อมต่อหลายเส้นทาง และจะต้องไม่มีช่องว่าง
คำหลักสลัว 'ป้อนคำหลัก
dim objFso 'กำหนดตัวแปรส่วนกลาง'
dim Counter 'กำหนดตัวแปรส่วนกลาง จำนวนผลการค้นหา
'****************** การเริ่มต้น ******************************* *******
คลาสย่อยส่วนตัว_เริ่มต้น
ตั้งค่า objFso=Server.CreateObject("Scripting.FileSystemObject")
ตัวนับ=0 'เริ่มต้นตัวนับ
จบหมวดย่อย
'************************************************ * ************
Class_Terminate ย่อยส่วนตัว
ตั้งค่า objFso=ไม่มีอะไร
จบหมวดย่อย
'******************สมาชิกสาธารณะ วิธีการโทร************************** **
ค้นหาฟังก์ชั่น
Folders=split(Folders,"+") 'แปลงเป็นอาร์เรย์
keyword=trim(keyword) 'ลบช่องว่างนำหน้าและต่อท้าย'
ถ้าคำหลัก = "" แล้ว
Response.Write("<font color='red'>คำหลักไม่สามารถเว้นว่างได้</font><br/>")
ออกจากฟังก์ชัน
สิ้นสุดถ้า
'ตรวจสอบว่ามีอักขระที่ผิดกฎหมายหรือไม่'
flag=instr(คำหลัก"") หรือ instr(คำหลัก"/")
flag=flag หรือ instr(คำหลัก,::)
flag=flag หรือ instr(คำสำคัญ,"|")
flag=flag หรือ instr(คำสำคัญ,"&")
หากตั้งค่าสถานะแล้ว 'คำหลักไม่สามารถมี /:|&
Response.Write("<font color='red'>คำหลักไม่สามารถมี /:|&</font><br/>")
ออกจากฟังก์ชัน 'ออกถ้ามีรวมอยู่ด้วย
สิ้นสุดถ้า
'ค้นหาหลายเส้นทาง
ดิมิ
สำหรับ i=0 ถึง ubound (โฟลเดอร์)
เรียก GetAllFile(Folders(i)) 'เรียกใช้ฟังก์ชันวนซ้ำ
ต่อไป
Response.Write("พบผลลัพธ์ทั้งหมด <font color='red'>"&Counter&"</font>")
ฟังก์ชันสิ้นสุด
'****************** ข้ามไฟล์และโฟลเดอร์*************************** * **
ฟังก์ชั่นส่วนตัว GetAllFile (โฟลเดอร์)
สลัว objFd, objFs, objFf
ตั้งค่า objFd=objFso.GetFolder(โฟลเดอร์)
ตั้งค่า objFs=objFd.SubFolders
ตั้งค่า objFf=objFd.Files
'สำรวจโฟลเดอร์ย่อย
dim strFdName 'ประกาศชื่อโฟลเดอร์ย่อย'
'************ ข้ามโฟลเดอร์ย่อย ******
เมื่อเกิดข้อผิดพลาดดำเนินการต่อต่อไป
สำหรับ OneDir แต่ละตัวใน objFs
strFdName=OneDir.Name
'โฟลเดอร์ระบบไม่ถูกสำรวจ
ถ้า strFdName<>"Config.Msi" EQV strFdName<>"รีไซเคิล" EQV strFdName<>"RECYCLER" EQV strFdName<>"ข้อมูลไดรฟ์ข้อมูลระบบ" แล้ว
SFN=Folder&""&strFdName 'เส้นทางสัมบูรณ์
โทร GetAllFile(SFN) 'เรียกซ้ำ'
สิ้นสุดถ้า
ต่อไป
strFlName สลัว
'********** สำรวจไฟล์ **********
สำหรับแต่ละ OneFile ใน objFf
strFlName=OneFile.Name
'desktop.ini และ folder.htt ไม่รวมอยู่ในรายการ
ถ้า strFlName<>"desktop.ini" EQV strFlName<>"folder.htt" แล้ว
FN=โฟลเดอร์&""&strFlName
ตัวนับ=ตัวนับ+สี(FN)
สิ้นสุดถ้า
ต่อไป
-
'ปิดแต่ละอินสแตนซ์ของวัตถุ
ตั้งค่า objFd=ไม่มีอะไร
ตั้งค่า objFs=ไม่มีอะไร
ตั้งค่า objFf=ไม่มีอะไร
ฟังก์ชันสิ้นสุด
'************************สร้างรูปแบบการจับคู่************************ ******* **********
ฟังก์ชั่นส่วนตัว CreatePattern (คำสำคัญ)
CreatePattern=คำสำคัญ
CreatePattern=แทนที่(สร้างรูปแบบ,".",".")
CreatePattern=แทนที่(สร้างรูปแบบ,"+", "+")
CreatePattern=แทนที่(สร้างรูปแบบ,"(", "(")
CreatePattern=แทนที่(สร้างรูปแบบ,"),")")
CreatePattern=แทนที่(สร้างรูปแบบ,"[", "[")
CreatePattern=แทนที่(สร้างรูปแบบ,"]", "]")
CreatePattern=แทนที่(สร้างรูปแบบ,"{","{")
CreatePattern=แทนที่(สร้างรูปแบบ,"}", "}")
CreatePattern=แทนที่(สร้างรูปแบบ,"*","[^\/]*") '* ตรงกัน
CreatePattern=Replace(CreatePattern,"?","[^\/]{1}") '? ตรงกัน
CreatePattern="("&CreatePattern&")+" 'การจับคู่โดยรวม
ฟังก์ชันสิ้นสุด
'******************************ค้นหาและใส่สีคำหลัก*************** *** *********
ฟังก์ชั่นส่วนตัว ColorOn (ชื่อไฟล์)
objReg สลัว
ตั้งค่า objReg=regExp ใหม่
objReg.Pattern=สร้างรูปแบบ(คำหลัก)
objReg.IgnoreCase=จริง
objReg.Global=จริง
retVal=objReg.Test(FileName) 'ดำเนินการทดสอบการค้นหา สี และเอาท์พุตหากผ่าน
ถ้าเป็น retVal แล้ว
OutPut=objReg.Replace(FileName,"<font color='#FF0000'>$1</font>") 'ตั้งค่าสีที่แสดงของคำหลัก
'****************************** ส่วนนี้สามารถปรับเปลี่ยนได้ตามต้องการและเอาต์พุต ********* ****** *********************
OutPut="<a href='#'>"&OutPut&"</a><br/>"
Response.Write(OutPut) 'ส่งออกผลลัพธ์ที่ตรงกัน
'************************************ จบส่วนที่แก้ไขได้******** ******************************
ColorOn=1 'จำนวนตัวนับที่เพิ่ม
อื่น
เปิดสี=0
สิ้นสุดถ้า
ตั้งค่า objReg=ไม่มีอะไร
ฟังก์ชันสิ้นสุด
จบคลาส
'************************ สิ้นสุดคลาส SearchFile************************ **
-
<html>
<หัว>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>www.knowsky.com</title>
</หัว>
<ร่างกาย>
<form name="form1" method="post" action="<% =Request.ServerVariables("PATH_INFO")%>">
คำสำคัญ:
<input name="keyword" type="text" id="keyword">
<input type="submit" name="Submit" value="Search">
<a href="help.htm" target="_blank">ความช่วยเหลือในการค้นหาขั้นสูง</a>
</แบบฟอร์ม>
-
คำหลักสลัว
คำหลัก=คำขอแบบฟอร์ม("คำหลัก")
ถ้าคำหลัก<>"" แล้ว
ตั้งค่า newsearch=new SearchFile
newsearch.Folders = "E: สื่อ + F:"
newsearch.keyword=คำหลัก
newsearch ค้นหา
ตั้งค่า newsearch=Nothing
response.Write("<br/>ใช้เวลานาน: "&(timer()-st)*1000&"ms")
สิ้นสุดถ้า
%>
</ร่างกาย>
</html>