史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2008-06-10, 10:57 AM   #1
飛行船大大
註冊會員
 
飛行船大大 的頭像
榮譽勳章
UID - 282126
在線等級: 級別:13 | 在線時長:238小時 | 升級還需:14小時級別:13 | 在線時長:238小時 | 升級還需:14小時級別:13 | 在線時長:238小時 | 升級還需:14小時
註冊日期: 2007-10-09
文章: 156
精華: 0
現金: 282 金幣
資產: 7282 金幣
預設 疑問 - html. 請問一下自己網頁要做一個網頁內的搜尋引擎要如何撰寫程式??



--------------------
閱讀本主題的最佳解答
--------------------


如下圖:我用forntPage在c:做了一些html 連結成一個web
請問一下自己網頁要做一個網頁內的搜尋引擎要如何撰寫程式??
我在c碟 執行時 第1張圖中打textbox 搜尋,出現錯誤 第2張圖的錯誤畫面如下 http://huhuge.hp.infoseek.co.jp/post_jpg/Picture9.gif
<第1張圖>

http://huhuge.hp.infoseek.co.jp/post_jpg/Picture10.gif
<第2張圖>

想請教
1. 我不想要上傳網頁到 網際網路http:// ,也不是要搜尋 網際網路上的網頁. 只想在 c:\ 中隨時執行index.html 就可以搜尋c: 中自己web中的各篇 .html 的標題和.html全文
要如何才能達成嗎?
2. 那兒有 較好的 .html搜尋引擎. 可以套用. (麻煩給個連接 或.html範例 均可 )

多謝回復!
飛行船大大 目前離線  
送花文章: 169, 收花文章: 55 篇, 收花: 132 次
回覆時引用此帖
舊 2008-06-10, 02:41 PM   #2 (permalink)
協調管理員
 
飛鳥 的頭像
榮譽勳章
UID - 23073
在線等級: 級別:72 | 在線時長:5513小時 | 升級還需:108小時級別:72 | 在線時長:5513小時 | 升級還需:108小時
註冊日期: 2003-01-07
VIP期限: 無限期
住址: 史萊姆團隊
文章: 7199
精華: 11
現金: 837 金幣
資產: 260029 金幣
預設

很難耶,不是那麼簡單

因為先把內容找出來,再作成資料庫,建索引後,再使用資料庫中提供的全域檢索功能

才能作出你要的東西,而且只是html是沒有查詢功能,至少要cgi,asp,php等語言才能作

html只提功送出和接收資料的功能而已

你要不要考慮用google desktop

他的動作也是要先作全硬碟搜尋,再把檔名作索引,再提供你電腦搜尋功能,你可以模仿他的原理
__________________
http://flybird017.googlepages.com/quok.gif http://flybird020.googlepages.com/new321.gif
寶貝你我的地球
, 請 少開電器,減少溫室氣體排放外,多種植植物,減少列印, 多用背面,丟棄時做垃圾分類。

http://netgames123.googlepages.com/tobikeways.jpg

飛鳥 目前離線  
送花文章: 11706, 收花文章: 3363 篇, 收花: 16453 次
回覆時引用此帖
向 飛鳥 送花的會員:
飛行船大大 (2008-06-10)
感謝您發表一篇好文章
舊 2008-06-10, 08:32 PM   #3 (permalink)
註冊會員
 
飛行船大大 的頭像
榮譽勳章
UID - 282126
在線等級: 級別:13 | 在線時長:238小時 | 升級還需:14小時級別:13 | 在線時長:238小時 | 升級還需:14小時級別:13 | 在線時長:238小時 | 升級還需:14小時
註冊日期: 2007-10-09
文章: 156
精華: 0
現金: 282 金幣
資產: 7282 金幣
預設

引用:
作者: 飛鳥 查看文章
很難耶,不是那麼簡單

因為先把內容找出來,再作成資料庫,建索引後,再使用資料庫中提供的全域檢索功能

才能作出你要的東西,而且只是html是沒有查詢功能,至少要cgi,asp,php等語言才能作

html只提功送出和接收資料的功能而已

你要不要考慮用google desktop

他的動作也是要先作全硬碟搜尋,再把檔名作索引,再提供你電腦搜尋功能,你可以模仿他的原理
想不到 .html 無法在c: 的web做搜尋 真令人失望
請問google desktop 這軟體 能只指定做某一目錄的索引 ?? (我不想做全硬碟的索引)
飛行船大大 目前離線  
送花文章: 169, 收花文章: 55 篇, 收花: 132 次
回覆時引用此帖
舊 2008-06-11, 11:33 AM   #4 (permalink)
長老會員
 
cwvdavid 的頭像
榮譽勳章
UID - 476
在線等級: 級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時
註冊日期: 2002-12-06
住址: 天與地的夾縫
文章: 3106
精華: 0
現金: 5256 金幣
資產: 2034465 金幣
預設

很難做 不表示不能做...
而是...真的不好做...而且極為不方便, 使用上非常受限...


這是國外的人寫的...可以直接下載(台灣不會有人寫這個的吧)
http://www.codeproject.com/KB/script..._in_files.aspx
(要登入, 要加入會員)

如果懶的加入, 請直接把下面的資料存成網頁檔, 然後在本機執行即可
語法:
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<style>
.Field {color: black; border: 1px solid #FFFFFF; background-color: #FFCC00;}
.Find  {color:blue; font: 10px Arial;}
</style>
<script>
var Fo =new ActiveXObject("Scripting.FileSystemObject");
var StrOut = new String();
var FileName = new String();
var Extention = new String();

function FindFile(FOo)
{
	var FSo = new Enumerator(FOo.Files);
	for(i=0;!FSo.atEnd();FSo.moveNext())
	{
		if(FileName == "*" ||  FSo.item().name.slice(0,FSo.item().name.lastIndexOf(".")).toLowerCase().indexOf(FileName)>-1)
			if(Extention == "*" || FSo.item().name.slice(FSo.item().name.lastIndexOf(".")+1).toLowerCase().indexOf(Extention)>-1){
				StrOut += "<tr "+ ((i%2)? "":"bgcolor=#DDAA55")  +"><td width=50%><font class=find>" + FSo.item().name + "</font></td><td width=25%><font class=find>" + FSo.item().type + "</font></td><td width=50%><font class=find>"+ String(FSo.item().size/(1024*1024)).slice(0,3) +" MB</font></td></tr>";
				i++
				}
	}
}

function Scan()
{
	FileName = (search.value.lastIndexOf(".")>-1)? search.value.slice(0,search.value.lastIndexOf(".")):(search.value.length>0)? search.value.toLowerCase():"*"; //Get Searched File Name
	Extention = (search.value.lastIndexOf(".")>-1)? search.value.slice(search.value.lastIndexOf(".")+1).toLowerCase():"*"; // Get Searched File Extention Name

	if(path.value.length>0 && Fo.FolderExists(path.value)){
		StrOut = "<table border=0 width=100% cellspacing=0>"
		FindFile(Fo.GetFolder(path.value));
		outPut.innerHTML = StrOut+"</table>";
		}
	else alert("Insert Correct Path Address");
}
</script>

<BODY topmargin="0" leftmargin="0">

<table border=0 width=100% cellspacing="0" style="border-collapse: collapse" cellpadding="2"><tr>
	<td dir="ltr" bgcolor="#FFCC00"><b><font face="Arial" size="2">Named :
    </font></b> </td>
	<td dir="ltr" bgcolor="#FFCC00">
    <input size=50 type=text id=search name=search class="Field"></td>
	</tr><tr>
	<td dir="ltr" bgcolor="#FFCC00">
    <p dir="ltr"><b><font face="Arial" size="2">Path : </font></b> </td>
	<td bgcolor="#FFCC00">
    <input size=50 type=text value="C:\" id=path name=path class="Field" ></td>
	</tr><tr>
	<td bgcolor="#FFCC00">&nbsp;</td>
	<td bgcolor="#FFCC00">
    <input type=button value="        Scan          " onclick=Scan() class="Field"></td>
	</tr><tr>
	<td colspan=2 align=right bgcolor="#FFCC00"><font face=arial size=2><b>Search Result</b></font><hr></td>
	</tr><tr>
	<td colspan=2 bgcolor="#FFCC00"><div id=outPut></div></td>
	</tr></table>
</BODY>
</HTML>

另外, 如果想找關於JavaScript FSO的資料,
可以到Google輸入[javascript fso Files], 即可找到很多
__________________
姜太公釣魚~ 願者上鉤
cwvdavid 目前離線  
送花文章: 4036, 收花文章: 2466 篇, 收花: 10141 次
回覆時引用此帖
向 cwvdavid 送花的會員:
飛行船大大 (2008-06-12)
感謝您發表一篇好文章
舊 2008-06-17, 11:15 AM   #5 (permalink)
長老會員
 
cwvdavid 的頭像
榮譽勳章
UID - 476
在線等級: 級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時
註冊日期: 2002-12-06
住址: 天與地的夾縫
文章: 3106
精華: 0
現金: 5256 金幣
資產: 2034465 金幣
預設

飛行船, 你寫的如何了?
我一直在等你的成果說~
cwvdavid 目前離線  
送花文章: 4036, 收花文章: 2466 篇, 收花: 10141 次
回覆時引用此帖
向 cwvdavid 送花的會員:
飛行船大大 (2008-06-18)
感謝您發表一篇好文章
舊 2008-06-18, 04:07 AM   #6 (permalink)
註冊會員
 
飛行船大大 的頭像
榮譽勳章
UID - 282126
在線等級: 級別:13 | 在線時長:238小時 | 升級還需:14小時級別:13 | 在線時長:238小時 | 升級還需:14小時級別:13 | 在線時長:238小時 | 升級還需:14小時
註冊日期: 2007-10-09
文章: 156
精華: 0
現金: 282 金幣
資產: 7282 金幣
預設

引用:
作者: cwvdavid 查看文章
飛行船, 你寫的如何了?
我一直在等你的成果說~
在這論壇 ~看來cwvdavid大 是我最好的朋友了 這也值回票價了
不知道你有繼續關注. 所以忘記回應.
我有試過你的java 方式.滿不錯的 可以搜尋標題, 但可惜無法搜尋 html內部的文字 .
所以目前仍然是 用xp ->開始 -->搜尋 -->指定目錄 -->指定內含文字
這樣子來找.
或是用我自己曾寫過的一個搜尋工具(可搜尋vb源碼的) 找這些html內部的文字(速度比xp快2~3倍).

此帖於 2008-06-18 04:39 AM 被 飛行船大大 編輯.
飛行船大大 目前離線  
送花文章: 169, 收花文章: 55 篇, 收花: 132 次
回覆時引用此帖
舊 2008-06-18, 11:59 AM   #7 (permalink)
長老會員
 
cwvdavid 的頭像
榮譽勳章
UID - 476
在線等級: 級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時
註冊日期: 2002-12-06
住址: 天與地的夾縫
文章: 3106
精華: 0
現金: 5256 金幣
資產: 2034465 金幣
預設

可以哦...javaScript可以搜尋文字哦...
可以哦......
可以哦......
可以哦......(回音)
可以哦......(回音)
可以哦......(回音)
可以哦......(回音)
可以哦......(回音)
...
只要把html讀取進來, 然後偵測字串...即可...
cwvdavid 目前離線  
送花文章: 4036, 收花文章: 2466 篇, 收花: 10141 次
回覆時引用此帖
向 cwvdavid 送花的會員:
飛行船大大 (2008-06-19)
感謝您發表一篇好文章
舊 2008-06-18, 01:29 PM   #8 (permalink)
長老會員
 
cwvdavid 的頭像
榮譽勳章
UID - 476
在線等級: 級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時
註冊日期: 2002-12-06
住址: 天與地的夾縫
文章: 3106
精華: 0
現金: 5256 金幣
資產: 2034465 金幣
預設

這是我改過的版本, 你試看看
語法:
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<style>
.Field {color: black; border: 1px solid #FFFFFF; background-color: #FFCC00;}
.Find  {color:blue; font: 10px Arial;}
</style>
<script>
var Fo =new ActiveXObject("Scripting.FileSystemObject");
var StrOut = new String();
var FileName = new String();
var Extention = new String();

function FindFile(FOo)
{
	cwvdavid_fileRead = new ActiveXObject("Scripting.FileSystemObject");

	var FSo = new Enumerator(FOo.Files);
	for(i=0;!FSo.atEnd();FSo.moveNext())
	{
		if(FileName == "*" ||  FSo.item().name.slice(0,FSo.item().name.lastIndexOf(".")).toLowerCase().indexOf(FileName)>-1)
		{
			if(Extention == "*" || FSo.item().name.slice(FSo.item().name.lastIndexOf(".")+1).toLowerCase().indexOf(Extention)>-1)
			{
				hasWord = "[x]";

				//把找到的檔案列出來...
				
				//路徑的尾巴要加\, 不然找不到
				mypath = path.value;
				
				//檢查mypath的尾巴是否有\, 如果沒有就加上去...
				if(mypath.lastIndexOf("\\")+1 != mypath.length)
				{
					mypath = mypath + "\\";
				}
				

				ts = cwvdavid_fileRead.OpenTextFile(mypath + FSo.item().name, 1);
				
				myReadWord = ts.ReadAll();
				if(myReadWord.indexOf(searchWord.value) != -1)
				{
					//如果有找到文字...就列出該檔案
					StrOut += "<tr "+ ((i%2)? "":"bgcolor=#DDAA55")  +"><td width=50%><font class=find>" + FSo.item().name + "</font></td><td width=25%><font class=find>" + FSo.item().type + "</font></td><td width=50%><font class=find>"+ String(FSo.item().size/(1024*1024)).slice(0,3) +" MB</font></td></tr>";
				}
				ts.Close();

				i++
			}
		}
	}
}

function Scan()
{
	FileName = (search.value.lastIndexOf(".")>-1)? search.value.slice(0,search.value.lastIndexOf(".")):(search.value.length>0)? search.value.toLowerCase():"*"; //Get Searched File Name
	Extention = (search.value.lastIndexOf(".")>-1)? search.value.slice(search.value.lastIndexOf(".")+1).toLowerCase():"*"; // Get Searched File Extention Name

	if(path.value.length>0 && Fo.FolderExists(path.value))
	{
		StrOut = "<table border=0 width=100% cellspacing=0>"
		FindFile(Fo.GetFolder(path.value));
		outPut.innerHTML = StrOut+"</table>";
	}
	else alert("Insert Correct Path Address");
}
</script>

<BODY topmargin="0" leftmargin="0">

<table border=0 width=100% cellspacing="0" style="border-collapse: collapse" cellpadding="2"><tr>
	<td dir="ltr" bgcolor="#FFCC00"><b><font face="Arial" size="2">Named :</font></b></td>
	<td dir="ltr" bgcolor="#FFCC00">
    <input size=50 type=text id=search name=search class="Field" value="*.html"></td>
	</tr><tr>
	<td dir="ltr" bgcolor="#FFCC00">
    <p dir="ltr"><b><font face="Arial" size="2">Path : </font></b> </td>
	<td bgcolor="#FFCC00">
    <input size=50 type=text value="C:\" id=path name=path class="Field" ></td>
	</tr><tr>
	<td bgcolor="#FFCC00">要找的文字...</td>
	<td bgcolor="#FFCC00">
    <input size=50 type=text value="文字" id=path0 name=searchWord class="Field" ></td>
	</tr><tr>
	<td bgcolor="#FFCC00"> </td>
	<td bgcolor="#FFCC00">
    <input type=button value="        Scan          " onclick=Scan() class="Field"></td>
	</tr><tr>
	<td colspan=2 align=right bgcolor="#FFCC00"><font face=arial size=2><b>Search Result</b></font><hr></td>
	</tr><tr>
	<td colspan=2 bgcolor="#FFCC00"><div id=outPut></div></td>
	</tr></table>
</BODY>
</HTML>
cwvdavid 目前離線  
送花文章: 4036, 收花文章: 2466 篇, 收花: 10141 次
回覆時引用此帖
向 cwvdavid 送花的會員:
飛行船大大 (2008-06-19)
感謝您發表一篇好文章
舊 2008-06-19, 05:07 AM   #9 (permalink)
註冊會員
 
飛行船大大 的頭像
榮譽勳章
UID - 282126
在線等級: 級別:13 | 在線時長:238小時 | 升級還需:14小時級別:13 | 在線時長:238小時 | 升級還需:14小時級別:13 | 在線時長:238小時 | 升級還需:14小時
註冊日期: 2007-10-09
文章: 156
精華: 0
現金: 282 金幣
資產: 7282 金幣
預設

引用:
作者: cwvdavid 查看文章
可以哦...javaScript可以搜尋文字哦...
可以哦......
可以哦......
可以哦......(回音)
可以哦......(回音)
可以哦......(回音)
可以哦......(回音)
可以哦......(回音)
...
只要把html讀取進來, 然後偵測字串...即可...
哈哈...你還加上 echo ....... 滿有趣味的.....(回音)
我試過了 速度也很快~ 看來您是這方面的專家 .....(回音)
終於可以派上用場.....(回音)
我一點也不會寫jave指令 但是可否請幫我多修正3個小地方~ 這樣你這程序就更完美了.....(回音)

1.畫面所填的path ,之下如果有許多子目錄.希望能遞回的向下層搜尋.因為web下通常還有下層目錄 內有htm網頁.

2. 在IE第一行上方總是會有 "為了協助保護 ....." 請問JAVA要如何改 不要讓此行出現.
http://huhuge.hp.infoseek.co.jp/post_jpg/Pic1.gif

3.當搜尋出來 許多項目例如10個項目
如果我 點某 第3項 ...我希望成像HTML 可以像hotlink 自動另開啟此html 到另一IE新視窗. 這樣可節省user許多時間.

感謝 你一直以來的熱心幫忙. 謝謝!
我這也有不少vb6的程式. 如果你有vb6方面的需要或設計.
請記得通知我.我應該可以找到(畢竟人是互相的) .....(回音)
(我pm 一個我的可搜尋源碼的p27.exe 送你. 請查收.)

++++++++++++++++++++++++++++++++++++++++++++++++++++
另外多請問一題(這樣應該也可以解決):
在.html 網頁中 我想多加一個文字 "搜尋" 當按中時 就直接呼叫我的p27.exe 來執行. 要如何寫這幾行的html語法?

此帖於 2008-06-19 05:59 AM 被 飛行船大大 編輯.
飛行船大大 目前離線  
送花文章: 169, 收花文章: 55 篇, 收花: 132 次
回覆時引用此帖
向 飛行船大大 送花的會員:
cwvdavid (2008-06-19)
感謝您發表一篇好文章
舊 2008-06-19, 11:48 AM   #10 (permalink)
長老會員
 
cwvdavid 的頭像
榮譽勳章
UID - 476
在線等級: 級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時
註冊日期: 2002-12-06
住址: 天與地的夾縫
文章: 3106
精華: 0
現金: 5256 金幣
資產: 2034465 金幣
預設

要加遞回的話你得等一等, 我有空再加上去,
另外, 你的程式我在XP開不起來, 只有 嗶一聲(作業系統預設Error的聲音), 就什麼都沒有了

(我都是用 [Effective File Search]這套在做搜尋的, 很好用, 也很方便)
cwvdavid 目前離線  
送花文章: 4036, 收花文章: 2466 篇, 收花: 10141 次
回覆時引用此帖
向 cwvdavid 送花的會員:
飛行船大大 (2008-06-19)
感謝您發表一篇好文章
舊 2008-06-19, 05:55 PM   #11 (permalink)
註冊會員
 
飛行船大大 的頭像
榮譽勳章
UID - 282126
在線等級: 級別:13 | 在線時長:238小時 | 升級還需:14小時級別:13 | 在線時長:238小時 | 升級還需:14小時級別:13 | 在線時長:238小時 | 升級還需:14小時
註冊日期: 2007-10-09
文章: 156
精華: 0
現金: 282 金幣
資產: 7282 金幣
預設

引用:
作者: cwvdavid 查看文章
要加遞回的話你得等一等, 我有空再加上去,
另外, 你的程式我在XP開不起來, 只有 嗶一聲(作業系統預設Error的聲音), 就什麼都沒有了

(我都是用 [Effective File Search]這套在做搜尋的, 很好用, 也很方便)
我平時都只自己用, 竟忘記先打包成setup.exe 它別台pc才能用
已打包 在pm.
飛行船大大 目前離線  
送花文章: 169, 收花文章: 55 篇, 收花: 132 次
回覆時引用此帖
舊 2008-06-19, 11:17 PM   #12 (permalink)
註冊會員
榮譽勳章
UID - 293162
在線等級: 級別:2 | 在線時長:18小時 | 升級還需:3小時級別:2 | 在線時長:18小時 | 升級還需:3小時
註冊日期: 2008-02-12
文章: 327
精華: 0
現金: 16 金幣
資產: 16941 金幣
預設

其實是路過隨口問問
飛行船大大要把站內搜尋應用到何種方面?
還有你希望做到怎麼樣的效能(例如一秒能查多少篇)
就單純請益一下,說不定我往後會用到
rank 目前離線  
送花文章: 362, 收花文章: 221 篇, 收花: 411 次
回覆時引用此帖
向 rank 送花的會員:
飛行船大大 (2008-06-20)
感謝您發表一篇好文章
舊 2008-06-20, 10:03 AM   #13 (permalink)
註冊會員
 
飛行船大大 的頭像
榮譽勳章
UID - 282126
在線等級: 級別:13 | 在線時長:238小時 | 升級還需:14小時級別:13 | 在線時長:238小時 | 升級還需:14小時級別:13 | 在線時長:238小時 | 升級還需:14小時
註冊日期: 2007-10-09
文章: 156
精華: 0
現金: 282 金幣
資產: 7282 金幣
預設

引用:
作者: rank 查看文章
其實是路過隨口問問
飛行船大大要把站內搜尋應用到何種方面?
還有你希望做到怎麼樣的效能(例如一秒能查多少篇)
就單純請益一下,說不定我往後會用到
只是單純的搜尋 c:\ 之下的 html網頁而已 (如 1樓 )
對速度我並沒講究 .( 可惜 html 並無法 搜尋 c:\ 之下的 html網頁)
飛行船大大 目前離線  
送花文章: 169, 收花文章: 55 篇, 收花: 132 次
回覆時引用此帖
舊 2008-06-20, 11:51 AM   #14 (permalink)
長老會員
 
cwvdavid 的頭像
榮譽勳章
UID - 476
在線等級: 級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時
註冊日期: 2002-12-06
住址: 天與地的夾縫
文章: 3106
精華: 0
現金: 5256 金幣
資產: 2034465 金幣
預設



我做了一些修改, 已經可以查子目錄了, 也可以直接執行點選找到的檔案...
另外, 關於安全性的問題, 那是微軟搞的...無解
語法:
<HTML lang=zh-TW>
<HEAD>
<TITLE>本機 檔案搜尋</TITLE>
<META http-equiv=Content-Type content="text/html; charset=big5">
</HEAD>
<style>
.Field {color: black; border: 1px solid #FFFFFF; background-color: #FFCC00;}
.Find  {color:blue; font: 12px Arial;}
</style>
<script>
var Fo =new ActiveXObject("Scripting.FileSystemObject");
var StrOut = new String();
var FileName = new String();
var Extention = new String();
var LimitFilesByDirectory = 100; //1個目錄內最多要檢查的檔案數...
var LimitFoldersByDirectory = 10; //1個目錄內最多要檢查的子目錄數...

function FindFile(FOo)
{
	cwvdavid_fileRead = new ActiveXObject("Scripting.FileSystemObject");

	var FSo = new Enumerator(FOo.Files); //取得 該目錄下的所有檔案...
	var subFOo = new Enumerator(FOo.SubFolders); //取得該目錄下的所有目錄...

	for(i=0;!FSo.atEnd();FSo.moveNext())
	{
		if(FileName == "*" ||  FSo.item().name.slice(0,FSo.item().name.lastIndexOf(".")).toLowerCase().indexOf(FileName)>-1)
		{
			if(Extention == "*" || FSo.item().name.slice(FSo.item().name.lastIndexOf(".")+1).toLowerCase().indexOf(Extention)>-1)
			{
				hasWord = "[x]";

				//把找到的檔案列出來...
				
				//路徑的尾巴要加\, 不然找不到
				mypath = FOo.Path;
				
				//檢查mypath的尾巴是否有\, 如果沒有就加上去...
				if(mypath.lastIndexOf("\\")+1 != mypath.length)
				{
					mypath = mypath + "\\";
				}
				

				ts = cwvdavid_fileRead.OpenTextFile(mypath + FSo.item().name, 1);
				
				myReadWord = ts.ReadAll();
				if(myReadWord.indexOf(searchWord.value) != -1)
				{
					//如果有找到文字...就列出該檔案
					StrOut += "<tr "+ ((i%2)? "":"bgcolor=#DDAA55")  +"><td width=20%><font class=find>" + FOo.Path + "</font></td><td width=30%><font class=find><a target=\"_blank\" href=\"" + mypath + FSo.item().name + "\">" + FSo.item().name + "</a></font></td><td width=25%><font class=find>" + FSo.item().type + "</font></td><td width=50%><font class=find>"+ String(FSo.item().size/(1024*1024)).slice(0,3) +" MB</font></td></tr>";
				}
				ts.Close();

				i++
				if(i >= LimitFilesByDirectory) break; //同一層的檔案只找前面 n 個...避免太多...沒完沒了...(尤其是誤選了什麼某個... I386的目錄)
			}
		}
	}

	//找完檔案開始找資料夾...

	for(i=0;!subFOo.atEnd();subFOo.moveNext())
	{
		FindFile(Fo.GetFolder(subFOo.item().Path)); //使用遞迴.....
		i++;
		if(i >= LimitFoldersByDirectory) break; //同一層目錄只找前 n 個子目錄...避免太多...沒完沒了...
	}
}

function Scan()
{
	FileName = (search.value.lastIndexOf(".")>-1)? search.value.slice(0,search.value.lastIndexOf(".")):(search.value.length>0)? search.value.toLowerCase():"*"; //Get Searched File Name
	Extention = (search.value.lastIndexOf(".")>-1)? search.value.slice(search.value.lastIndexOf(".")+1).toLowerCase():"*"; // Get Searched File Extention Name

	if(path.value.length>0 && Fo.FolderExists(path.value))
	{
		StrOut = "<table border=0 width=100% cellspacing=0>"
		StrOut += "<tr bgcolor=\"#CCCCCC\"" +"><td width=20%><font class=find>路徑</font></td><td width=30%><font class=find>檔名</font></td><td width=25%><font class=find>檔案類型</font></td><td width=50%><font class=find>檔案大小</font></td></tr>";
		outPut.innerHTML = StrOut;
		FindFile(Fo.GetFolder(path.value));
		outPut.innerHTML = StrOut+"</table>";
	}
	else alert("錯誤的路徑...");
}
</script>

<BODY topmargin="0" leftmargin="0">

<table border=0 width=100% cellspacing="0" style="border-collapse: collapse" cellpadding="2"><tr>
	<td dir="ltr" bgcolor="#FFCC00"><b><font face="Arial" size="2">Named :</font></b></td>
	<td dir="ltr" bgcolor="#FFCC00">
    <input size=50 type=text id=search name=search class="Field" value="*.html"></td>
	</tr><tr>
	<td dir="ltr" bgcolor="#FFCC00">
    <p dir="ltr"><b><font face="Arial" size="2">Path : </font></b> </td>
	<td bgcolor="#FFCC00">
    <input size=50 type=text value="C:\testHtml" id=path name=path class="Field" ></td>
	</tr><tr>
	<td bgcolor="#FFCC00">要找的文字...</td>
	<td bgcolor="#FFCC00">
    <input size=50 type=text value="文字" id=path0 name=searchWord class="Field" ></td>
	</tr><tr>
	<td bgcolor="#FFCC00"> </td>
	<td bgcolor="#FFCC00">
    <input type=button value="        Scan          " onclick=Scan() class="Field"></td>
	</tr><tr>
	<td colspan=2 align=right bgcolor="#FFCC00"><font face=arial size=2><b>Search Result</b></font><hr></td>
	</tr><tr>
	<td colspan=2 bgcolor="#FFCC00">
		<div id=outPut>
		
		</div>
	</td>
	</tr></table>
</BODY>
</HTML>
cwvdavid 目前離線  
送花文章: 4036, 收花文章: 2466 篇, 收花: 10141 次
回覆時引用此帖
向 cwvdavid 送花的會員:
飛行船大大 (2008-06-20)
感謝您發表一篇好文章
舊 2008-06-20, 12:18 PM   #15 (permalink)
註冊會員
 
飛行船大大 的頭像
榮譽勳章
UID - 282126
在線等級: 級別:13 | 在線時長:238小時 | 升級還需:14小時級別:13 | 在線時長:238小時 | 升級還需:14小時級別:13 | 在線時長:238小時 | 升級還需:14小時
註冊日期: 2007-10-09
文章: 156
精華: 0
現金: 282 金幣
資產: 7282 金幣
預設

引用:
作者: cwvdavid 查看文章
我做了一些修改, 已經可以查子目錄了, 也可以直接執行點選找到的檔案...
厲害 ~ 修改這樣快
比我的p27.exe 好用多了. 我先去試 試.
謝謝 cwvdavid 大大
飛行船大大 目前離線  
送花文章: 169, 收花文章: 55 篇, 收花: 132 次
回覆時引用此帖
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用

相似的主題
主題 主題作者 討論區 回覆 最後發表
疑問 - 最近買了一台印表機...有一些疑問! 180524 硬體疑難使用問題討論區 17 2007-09-17 06:16 PM
收集了一些常用的註冊表修改實例,分享給大家。 psac 作業系統操作技術文件 0 2006-05-15 01:27 AM
請問...我用flashget抓了一部電影.但不知點了裡頭什麼..電影不見了.是否有法子可補救?? lancolian 軟體應用問題討論區 0 2003-07-17 01:58 AM


所有時間均為台北時間。現在的時間是 08:50 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1