找出純文字檔裡的關鍵字

最近因為常在多個純文字檔案找關鍵字,雖然很多文字編輯工具都有這個功能,但總覺得它的效能不好,有的一跑起來,就像當掉一樣,所以就寫了一個小工具來解決自己所遇到的問題,減少每次搜尋的等待時間.

最近因為常在多個純文字檔案找關鍵字,雖然很多文字編輯工具都有這個功能,但總覺得它的效能不好,有的一跑起來,就像當掉一樣,所以就寫了一個小工具來解決自己所遇到的問題,減少每次搜尋的等待時間.

 

這工具的介面很簡單,因為是自己在用,就沒加入什麼防呆的動作,基本畫面如下:

路徑:點一下,就會開啟瀏覽資料匣的視窗,供選擇欲搜尋的目錄.

副檔:以逗號的方式做分隔,因為filter的關係,*.asp也會帶出*.aspx等檔案,只有副檔名長度為3才會這樣,其它不會.

條件:就是輸入欲查詢的關鍵字.

子目錄 : 打勾才會連子目錄也找

分大小寫 : (這個不用說吧....)

接下來按下查詢,就會帶出查詢結果.

上面的Grid就是有找到的檔案,與下面的Grid是Master-Detail的關係,下面的Grid就是這個檔案在第幾行有找到這關鍵字,程式碼內容.

如果連點上面的Gird,就會用檔案總管開啟那個目錄並選取那個檔案.

 

大致上就這樣,用了幾天還OK,如果要再改的,下面有提供原使碼,就自便吧~

 

***2010/2/21修改

1. 加入了文字檔的編碼判斷,判斷方式可參考另一篇文章[判斷文字檔案的編碼方式]

2. 針對DirectoryInfo.GetFiles的Search Pattern特性做調整.

SearchPattern 在副檔名長度正好為三個字元時的比對行為與在副檔名長度大於三個字元時不相同。恰為三個字元的 searchPattern  會傳回三個 (含) 以上字元的副檔名。一個、兩個或三個字元以上的 searchPattern  只會傳回具有正好該長度副檔名的檔案。

參考 :

MSDN DirectoryInfo.GetFiles 方法 (String)

 

執行程式 : TextFinder.zip

原始碼 : TextFinderSrc.zip