#========================================================================== # # 変数検索スクリプト「vGrep(C言語用)」の使い方 # #========================================================================== #----------------------------------- # 変数検索スクリプト #----------------------------------- 本スクリプトは、「設定ファイル_検索対象ディレクトリ.txt」で指定したディレクトリ(フォルダ)以下にある 「設定ファイル_検索対象拡張子.txt」で指定された拡張子を持つファイルに対して、「設定ファイル_検索語リスト.txt」 に記載された文字列があるかを確認するスクリプトです。 #----------------------------------- # 検索にヒットするものと、しないものの例 #----------------------------------- 本スクリプトは、完全一致の変数の検索を主な目的としており、例えば、"ABC"という検索語を指定した場合、 「ABC = ABC + 1;」という記述は検索結果としてヒットしますが、「ABCD = ABCD + 1;」という記述はヒットしません。 完全一致検索はC言語の変数の使用可能文字ルールに従って行います。 ※完全一致検索には半角文字のみに対応しています。全角文字には対応していません。 また、「-コメントを検索範囲に含めない」をONした場合、  ・コメント「//」の後ろは検索対象から除外します  ・一行中での「/*」と「*/」で囲まれた箇所を検索対象から除外します  ・一行中で「/*」に対応する「*/」がない場合は「/*」以降を除外します  ・複数行に渡る「/*」と「*/」でのコメントには対応していません。つまり、2行目からは除外せず   検索対象としています 例)「ABC」を検索した場合 【 HIT】 ABC = ABC + 1 【NO HIT】 ABCD = ABCD + 1 【 HIT】 ABCD = ABC + 1 【NO HIT】 ABC_1 【 HIT】 ABC(DEF) 【 HIT】 ABC->DEF 【 HIT】 ABC=DEF 【 HIT】 DEF=ABC 【NO HIT】 //DEF=ABC 【NO HIT】 /*DEF=ABC 【 HIT】 /*DEF*/ABC #----------------------------------- # 設定 #----------------------------------- (1)ActivePerlのインストール  本スクリプトはPerlで動作するため、Windows上でPerlを実行するためにActivePerlを  インストールしてください。インストール画面に従ってそのままインストール作業を行ってください。  【ActivePerl - 窓の杜ライブラリ】  http://www.forest.impress.co.jp/library/software/activeperl/ (2)「設定ファイル_検索対象ディレクトリ.txt」の設定 検索対象のディレクトリをフルパスで指定してください。 (3)「設定ファイル_検索対象拡張子.txt」の設定 拡張子をこのファイルで指定できます。(1行に1つの拡張子を記載してください) (4)「設定ファイル_検索語リスト.txt」の設定 検索語を1行に1単語入力してください。 (5)「設定ファイル_設定ON・OFF.txt」の設定 -完全一致 ・・・ ON:文字列の完全一致検索 OFF:文字列の部分一致検索 -コメントを検索範囲に含めない ・・・ ON:コメントを検索範囲に含めない OFF:コメントを検索範囲に含める  -大文字小文字を区別する ・・・ ON:大文字小文字を区別する OFF:大文字小文字を区別しない (6)「設定ファイル_コメント文字.txt」の設定 1行に1コメントを設定してください。コメントは複数設定可能です。 なお、コメントは現在「//」「/*」に限定しています。 コメントを選択できるようにすると3倍ほど時間がかかってしまうため、今回は選択コメント文字をできる機能を無くしています。 #----------------------------------- # 実行 #----------------------------------- (1)上記の設定ができている状態で、「vGrep.pl」をダブルクリックしてください。 最後まで実行すると、実行結果を「result.csv」に出力します。 なお、実行途中で止めたい場合は「Ctrl+C」で停止します。 「result.csv」は、テキストエディターのgPadにてタグジャンプできる形式にしています。 【gPad - 窓の杜ライブラリ】 http://www.forest.impress.co.jp/library/software/gpad/ #----------------------------------- # 履歴 #----------------------------------- ■2015/6/27 ・新規作成 ■2015/11/28 ・「設定ファイル_設定ON・OFF.txt」を追加 ・完全一致OFFで実行した場合に"("や")"を検索文字として認識するように修正 ・大文字小文字区別のON/OFF設定機能を追加 ■2015/12/12 ・コメントを修正 ・1行における/*〜*/のコメントに対応しました。 ■2016/08/18 ・対象文字列に全角文字がある場合に稀に検索文字がない場合にも誤って検索にヒットしてしまうことがあり改善しました。  具体的には、本ソースコード(vGrep.pl)はShift-JISで記載されているため、Encode::decodeによりShift-JISの文字列を  デコードして内部文字列に変換した後、ファイル出力する際に再度内部文字列として扱ったものをEncode::encodeで  Shift-JISに戻すというデコード、エンコードの操作を追加しました。