2008-06-10, 10:57 AM | #1 |
註冊會員
|
疑問 - html. 請問一下自己網頁要做一個網頁內的搜尋引擎要如何撰寫程式??
-------------------- 閱讀本主題的最佳解答 -------------------- 如下圖:我用forntPage在c:做了一些html 連結成一個web 請問一下自己網頁要做一個網頁內的搜尋引擎要如何撰寫程式?? 我在c碟 執行時 第1張圖中打textbox 搜尋,出現錯誤 第2張圖的錯誤畫面如下 <第1張圖> <第2張圖> 想請教 1. 我不想要上傳網頁到 網際網路http:// ,也不是要搜尋 網際網路上的網頁. 只想在 c:\ 中隨時執行index.html 就可以搜尋c: 中自己web中的各篇 .html 的標題和.html全文 要如何才能達成嗎? 2. 那兒有 較好的 .html搜尋引擎. 可以套用. (麻煩給個連接 或.html範例 均可 ) 多謝回復! |
送花文章: 178,
|
2008-06-10, 02:41 PM | #2 (permalink) |
協調管理員
|
很難耶,不是那麼簡單
因為先把內容找出來,再作成資料庫,建索引後,再使用資料庫中提供的全域檢索功能 才能作出你要的東西,而且只是html是沒有查詢功能,至少要cgi,asp,php等語言才能作 html只提功送出和接收資料的功能而已 你要不要考慮用google desktop 他的動作也是要先作全硬碟搜尋,再把檔名作索引,再提供你電腦搜尋功能,你可以模仿他的原理 |
__________________ |
|
送花文章: 11706,
|
向 飛鳥 送花的會員:
|
飛行船大大 (2008-06-10)
感謝您發表一篇好文章 |
2008-06-10, 08:32 PM | #3 (permalink) | |
註冊會員
|
引用:
請問google desktop 這軟體 能只指定做某一目錄的索引 ?? (我不想做全硬碟的索引) |
|
送花文章: 178,
|
2008-06-11, 11:33 AM | #4 (permalink) |
長老會員
|
很難做 不表示不能做...
而是...真的不好做...而且極為不方便, 使用上非常受限... 這是國外的人寫的...可以直接下載(台灣不會有人寫這個的吧) 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"> </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], 即可找到很多 |
__________________ 姜太公釣魚~ 願者上鉤 |
|
送花文章: 4036,
|
向 cwvdavid 送花的會員:
|
飛行船大大 (2008-06-12)
感謝您發表一篇好文章 |
2008-06-18, 04:07 AM | #6 (permalink) |
註冊會員
|
在這論壇 ~看來cwvdavid大 是我最好的朋友了 這也值回票價了
不知道你有繼續關注. 所以忘記回應. 我有試過你的java 方式.滿不錯的 可以搜尋標題, 但可惜無法搜尋 html內部的文字 . 所以目前仍然是 用xp ->開始 -->搜尋 -->指定目錄 -->指定內含文字 這樣子來找. 或是用我自己曾寫過的一個搜尋工具(可搜尋vb源碼的) 找這些html內部的文字(速度比xp快2~3倍). 此帖於 2008-06-18 04:39 AM 被 飛行船大大 編輯. |
送花文章: 178,
|
2008-06-18, 01:29 PM | #8 (permalink) |
長老會員
|
這是我改過的版本, 你試看看
語法:
<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> |
送花文章: 4036,
|
向 cwvdavid 送花的會員:
|
飛行船大大 (2008-06-19)
感謝您發表一篇好文章 |
2008-06-19, 05:07 AM | #9 (permalink) | |
註冊會員
|
引用:
我試過了 速度也很快~ 看來您是這方面的專家 .....(回音) 終於可以派上用場.....(回音) 我一點也不會寫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 被 飛行船大大 編輯. |
|
送花文章: 178,
|
向 飛行船大大 送花的會員:
|
cwvdavid (2008-06-19)
感謝您發表一篇好文章 |
2008-06-20, 11:51 AM | #14 (permalink) |
長老會員
|
我做了一些修改, 已經可以查子目錄了, 也可以直接執行點選找到的檔案... 另外, 關於安全性的問題, 那是微軟搞的...無解 語法:
<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> |
送花文章: 4036,
|
向 cwvdavid 送花的會員:
|
飛行船大大 (2008-06-20)
感謝您發表一篇好文章 |
|
|
相似的主題 | ||||
主題 | 主題作者 | 討論區 | 回覆 | 最後發表 |
疑問 - 最近買了一台印表機...有一些疑問! | 180524 | 硬體疑難使用問題討論區 | 17 | 2007-09-17 06:16 PM |
請問...我用flashget抓了一部電影.但不知點了裡頭什麼..電影不見了.是否有法子可補救?? | lancolian | 軟體應用問題討論區 | 0 | 2003-07-17 01:58 AM |