あなたは思うかもしれません:わかりました、今私はファイルに書き込む方法を知っています。しかし、私たちはもっとすることができますか? Webサイトの検索関数を作成してみましょう。
検索エンジンを構築するための鍵は再帰です。主に、ディレクトリ内のファイルを検索するコードを記述し、すべてのディレクトリループで同じコードを実行します。なぜなら
合計のサブディレクトリの数を判断できないようにするには、検索コードを終了するまで何度も実行する必要があります。再帰的な電話はとても良いです!
検索ページを作成しましょう。ユーザーが検索文字列を入力するHTMLフォームが作成されたとします。
DIM OBJFOLDER
dim strsearchText
dim objfso
strsearchText = request.form(searchText)< - 検索文字列
'FSOおよびフォルダーオブジェクトを作成します
fso = server.createObject(scripting.filesystemObject)を設定します
objfolder = objfso.getFolder(server.mappath(/))を設定します
objfolderを検索します
上記のコードは変数を初期化するだけで、検索関数は検索関数を実行します。これは次のように説明されています。
関数検索(objfolder)
Dim objsubfolder
'電流内のすべてのファイルをループします
フォルダ
objfolder.filesの各objfileについて
objtextStream = objfso.opentextfile(objfile.path、1)< - set for reading
'ファイルの内容をaに読んでください
変数
strfilecontents = objtextStream.readall
'検索文字列がファイルにある場合
リンクを書きます
'ファイルに
If strust(1、strfilecontents、strsearchtext、1)then
Response.Write <a href =/&objfile.name&_
>&objfile.name&< /a> <br>
bolfilefound = true
ifを終了します
objtextStream.close
次
「これが再帰の部分です - それぞれについて
'このディレクトリのサブフォルダーは、検索機能をもう一度実行します
objfolder.subfoldersの各objsubfolderについて
objsubfolderを検索します
次
エンド関数
ファイルを開くことができるためには、FSOにはWebパスではなく実際のファイルパスが必要です。たとえば、それはc:inetpubwwwoot empiindex.htmlです
www.enfused.com/temp/index.htmlまたは/temp/index.html。 後者を前者に変換するには、server.mappathを使用します
(ファイル名)、ファイル名はWebパス名を表します。
上記のコードは、指定する初期ディレクトリの下にあるフォルダーの各サブディレクトリで実行されます。ここで、初期ディレクトリはWeb Root Directory/を参照します。それから
ディレクトリに各ファイルを開いて、指定された文字列が見つかった場合、そのファイルへのリンクが表示されます。
ファイルとサブディレクトリの数が増えると、検索にかかる時間が増えることに注意してください。激しい検索作業が必要な場合は、他の措置を講じることをお勧めします
Microsoftのインデックスサーバーインデックスサーバーなどの方法。