第26回 grepプラグインの追加
公開日:2019-02-15 更新日:2019-05-14
[メモ帳作成講座]
1. 概要
grepプラグインの追加を行いました。
指定したフォルダ配下のファイルに対して、正規表現を使ってキーワードがファイルに含まれているか検索することができます。
ファイルツリーのメニュー、またはツールバーから起動することができます。
検索処理は別スレッドで行っており、検索中でも画面を操作することができます。
指定したフォルダ配下のファイルに対して、正規表現を使ってキーワードがファイルに含まれているか検索することができます。
ファイルツリーのメニュー、またはツールバーから起動することができます。
検索処理は別スレッドで行っており、検索中でも画面を操作することができます。
2. 動画
3. 説明
1. ファイル一覧の取得
grepの実装方法の1つとして、一度全てのファイル一覧を取得して、それからファイル一覧をループして、ファイルをチェックする方法があります。
この場合、ファイル一覧の取得が完了するまで、検索処理が始まりません。
そこで今回は、Directory.EnumerateFiles() を使い、ファイル一覧を1度に取得するのではなく、ファイルを1つずつ取得して、検索をするようにしています。
これにより、grep実行後、早い段階で目的のファイルが見つかった場合は、すぐにキャンセルすることができます。
前者の場合は、早い段階で目的のファイルが見つかるような場合でも、全てのファイル一覧の取得が終わるまで、待つ必要があります。
この場合、ファイル一覧の取得が完了するまで、検索処理が始まりません。
そこで今回は、Directory.EnumerateFiles() を使い、ファイル一覧を1度に取得するのではなく、ファイルを1つずつ取得して、検索をするようにしています。
これにより、grep実行後、早い段階で目的のファイルが見つかった場合は、すぐにキャンセルすることができます。
前者の場合は、早い段階で目的のファイルが見つかるような場合でも、全てのファイル一覧の取得が終わるまで、待つ必要があります。
2. 正規表現による文字列の検索
正規表現による検索には、Regex.Matches() を使用します。
大文字・小文字の区別をする場合は、正規表現ではなく、メソッドの引数でオプションを指定します。
戻り値は MatchCollection となり、検索でヒットした文字列中の位置(index)、ヒットした文字列(Value) を取得することができます。
Collection になっているのは、1つの文字列中に、複数ヒットする場合があるためです。
大文字・小文字の区別をする場合は、正規表現ではなく、メソッドの引数でオプションを指定します。
戻り値は MatchCollection となり、検索でヒットした文字列中の位置(index)、ヒットした文字列(Value) を取得することができます。
Collection になっているのは、1つの文字列中に、複数ヒットする場合があるためです。
4. 画面
ダウンロード
ver | 実行ファイル | ソース |
---|---|---|
1.1.10 2019/01/29 | ncm_1_1_10.zip | ncm_1_1_10_src.zip |