< %@LANGUAGE="VBSCRIPT " CODEPAGE="936"%>
<%
ش خافت
ش = الموقت ()
'********************************************************************************************************************************************************************************* * ***********
'*************Class SearchFile للبحث في ملفات القرص الصلب *************
'****************** طريقة الاتصال : *************
'*************تعيين newsearch=new SearchFile'Statement******************
'******************newsearch.Folder="F:+E:"'مصدر البحث الوارد**************** **
'******************newsearch.keyword="تجميع" 'الكلمة الرئيسية******************
'************newsearch.Search' ابدأ البحث عن******************
'******************Set newsearch=Nothing'End****************
'********************************************************************************************************************************************************************************* * ***********
ملف البحث الخاص بالفصل الدراسي
قم بتمرير المجلدات الخافتة في المسار المطلق، واستخدم علامة + لتوصيل مسارات متعددة، ويجب ألا تكون هناك مسافات.
الكلمة الأساسية المعتمة "إدخال الكلمات الرئيسية".
dim objFso "تحديد المتغيرات العامة".
خافت العداد 'تحديد المتغيرات العالمية، وعدد نتائج البحث
'******************التهيئة******************************* *******
فئة فرعية خاصة_تهيئة
تعيين objFso=Server.CreateObject("Scripting.FileSystemObject")
العداد=0 'تهيئة العداد
نهاية الفرعية
'********************************************************************************************************************************************************************************* * ************
فئة فرعية خاصة_إنهاء
تعيين objFso=لا شيء
نهاية الفرعية
'******************عضو عام، طريقة الاتصال*************************** **
البحث عن وظيفة
Folders=split(Folders,"+") 'تحويل إلى مصفوفة
الكلمة الرئيسية = تقليم (كلمة رئيسية) "إزالة المسافات البادئة والزائدة."
إذا كانت الكلمة الرئيسية = "" ثم
Response.Write("<font color='red'>لا يمكن أن تكون الكلمات الرئيسية فارغة</font><br/>")
وظيفة الخروج
نهاية إذا
'تحديد ما إذا كان يحتوي على أحرف غير قانونية
العلم=instr(الكلمة الرئيسية،"") أو instr(الكلمة الرئيسية،"/")
علم = علم أو instr (الكلمة الرئيسية، "):")
علم=علم أو instr(الكلمة الرئيسية،"|")
علم=علم أو instr(الكلمة الرئيسية،"&")
إذا تم وضع علامة، فإن "الكلمات الرئيسية لا يمكن أن تحتوي على /:|&"
Response.Write("<font color='red'>لا يمكن أن تحتوي الكلمات الرئيسية على /:|&</font><br/>")
وظيفة الخروج "الخروج إذا تم تضمين ذلك".
نهاية إذا
"بحث متعدد المسارات."
ديمي
لأني=0 إلى ubound(المجلدات)
استدعاء GetAllFile(Folders(i)) 'استدعاء وظيفة الحلقة العودية
التالي
Response.Write("تم العثور على إجمالي نتائج <font color='red'>"&Counter&"</font>")
وظيفة النهاية
'****************** اجتياز الملفات والمجلدات *************************** * **
وظيفة خاصة GetAllFile (مجلد)
خافت objFd،objFs،objFf
تعيين objFd=objFso.GetFolder(Folder)
تعيين objFs=objFd.SubFolders
قم بتعيين objFf=objFd.Files
'اجتياز المجلدات الفرعية
dim strFdName "قم بتعريف اسم المجلد الفرعي."
'************ اجتياز المجلدات الفرعية ******
على خطأ استئناف المقبل
لكل OneDir في objFs
strFdName=OneDir.Name
'لا يتم اجتياز مجلدات النظام
إذا strFdName<>"Config.Msi" EQV strFdName<>"RECYCLED" 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=Folder&""&strFlName
العداد=العداد+ColorOn(FN)
نهاية إذا
التالي
'*********************************
'أغلق كل مثيل كائن
تعيين objFd = لا شيء
تعيين objFs=لا شيء
تعيين objFf=لا شيء
وظيفة النهاية
'************************إنشاء نمط مطابق********************** ******** **********
وظيفة خاصة CreatePattern (الكلمة الرئيسية)
CreatePattern=keyword
CreatePattern=Replace(CreatePattern,"."،.")
CreatePattern=Replace(CreatePattern,"+"،"+")
CreatePattern=Replace(CreatePattern,"("،"(")
CreatePattern=Replace(CreatePattern,")")"،")")
CreatePattern=Replace(CreatePattern,"["،[")
CreatePattern=Replace(CreatePattern،"]"،"،]")
CreatePattern=Replace(CreatePattern,"{"،"{")
CreatePattern=Replace(CreatePattern,"}"،"}")
CreatePattern=Replace(CreatePattern,"*"،"[^\/]*") '* تطابق
CreatePattern=Replace(CreatePattern,"?",[^\/]{1}") 'تطابق
CreatePattern="("&CreatePattern&")+" 'تطابق عام
وظيفة النهاية
'****************************** الكلمات الرئيسية للبحث واللون *************** *** *********
الوظيفة الخاصة ColorOn(اسم الملف)
كائن خافت
اضبط objReg=new RegExp
objReg.Pattern=CreatePattern(الكلمة الرئيسية)
objReg.IgnoreCase=True
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 = لا شيء
وظيفة النهاية
نهاية الفصل
'************************ملف البحث النهائي للفئة********************** **
%>
<أتش تي أم أل>
<الرأس>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<العنوان>www.knowsky.com</title>
</الرأس>
<الجسم>
<form name="form1"method="post" action="<% =Request.ServerVariables("PATH_INFO")%>">
الكلمات الرئيسية:
<اسم الإدخال = "الكلمة الرئيسية" نوع = "نص" معرف = "الكلمة الرئيسية">
<نوع الإدخال = "إرسال" الاسم = "إرسال" القيمة = "بحث">
<a href="help.htm" target="_blank">مساعدة البحث المتقدم</a>
</النموذج>
<%
الكلمة الأساسية قاتمة
الكلمة الرئيسية=Request.Form("الكلمة الرئيسية")
إذا كانت الكلمة الأساسية<>"" إذن
تعيين newsearch=new SearchFile
newsearch.Folders="E:Media+F:"
newsearch.keyword=keyword
newsearch.Search
تعيين بحث جديد = لا شيء
Response.Write("<br/>يستغرق وقتًا طويلاً: "&(timer()-st)*1000&"ms")
النهاية إذا
%>
</الجسم>
</html>