Find String Ver.1.7.1 2012-07-29 canda 1. 概要 ・フォルダ内の複数のファイルから文字列を検索します。 ・複数の文字コーディング、改行コードに対応しています。 ・サブフォルダ内まで再帰的に検索することも出来ます。 ・文字列置換機能もあります。 ・検索、置換ともに正規表現が使えます。 ・好みのエディタで検索されたファイルの検索位置で開くことが出来ます。(エディタにその機能があれば) ・検索されたファイルをまとめてファイルコピーできます。  その際、ディレクトリ構造を保持してコピーも出来ます。 ・文字列置換は1回のアンドゥが可能です。 2. 使い方 以下の3ファイルを同じフォルダに入れてFindString.exeをダブルクリックします。 FindString.exe CharCodeSet.ini FindString.ini FindString.iniが無い場合は、自動生成されます。 コマンドラインもしくは、iniファイルをFindString.exeにドラッグアンドドロップすることで任意のiniファイルを指定して実行することもできます。 3. Window説明 3-1. File Setting フレーム ・Source Folder  検索対象フォルダを指定します。  フォルダは以下の3通りの指定方法があります。  1.直接入力  2.入力欄のダブルクリックもしくは右側のボタンクリックでダイアログボックスでフォルダ選択   この場合は、もともとここに書かれているフォルダパスが存在しないとエラーメッセージを出して   ダイアログボックスを表示しません。その場合は、実在するフォルダパスに書き換えてからやり直してください。  3.フォルダを入力欄にドラッグアンドドロップ ・Maximum File Size  指定サイズより大きいファイルサイズのファイルは無視します。 ・Find Sub Folder  チェックするとサブフォルダを再帰的に検索します。 ・Character Coding  文字コードを指定します。  _autodetectで、ある程度自動判別できるみたいですが、unicodeとかutf-8とかはちゃんと指定しないとだめみたいです。  shift-jisも_autodetectで必ず正しく判別されるわけではないようです。  正しく判別されていないと行数があっていなかったりします。  いろいろと選択できるようになっていますが、動作検証は行っていません。 ・File Extention  ファイル拡張子をカンマ区切りで指定します。  右側のコンボボックスの設定により検索対象が変わります。  [Include]の場合は指定したファイル拡張子のファイルのみ検索します。  [Exclude]の場合は指定したファイル拡張子のファイルを検索対象から除きます。 ・Copy Folder  [Copy Files], [Copy Folders] ボタンクリック時のファイルコピー先フォルダを指定します。  フォルダは以下の3通りの指定方法があります。  1.直接入力  2.入力欄のダブルクリックもしくは右側のボタンクリックでダイアログボックスでフォルダ選択   この場合は、もともとここに書かれているフォルダパスが存在しないとエラーメッセージを出して   ダイアログボックスを表示しません。その場合は、実在するフォルダパスに書き換えてからやり直してください。  3.フォルダを入力欄にドラッグアンドドロップ 3-2. Find Setting フレーム ・Find Text  検索文字列を入力します。  ここにカーソルがある状態で[Enter]キーを押すと検索開始します。 ・Use Regular Expression  チェックすると検索、置換に正規表現を使用します。  正規表現エンジンは、Microsoft VBScript Regular Expressiond 5.5 を使用しています。  http://msdn.microsoft.com/ja-jp/library/28hw3sce.aspx  一般的な正規表現とちょっと違います。(パタン置換で\でなくて$を使う等) ・Ignore Case  チェックすると1バイトアルファベットの大文字、小文字の違いを無視します。 ・Line Feed Code  改行コードを指定します。  これが合っていない場合でも検索されることはありますが、検索位置の行、桁位置が合わなくなります。 ・Enable Restore  チェックを入れてから[Replace]を実行すると、1回だけ[Restore]ボタンで元に戻せます。  チェック時には置換実行前にTEMPフォルダ(環境変数で指定されている)内のFindStringフォルダ内に対象ファイルが一時保存されています。  このフォルダはプログラム終了時に削除されます。 ・Check Word Only  単語のみ検索します。正規表現との組み合わせでの検索結果は正しくないことがあります。 ・Separater  単語のみ検索の場合、ここに記されているいずれかの文字を単語の区切りとみなします。 ・Replace Text  文字列置換文字列を入力します。  正規表現を使用可能です。 ・Findボタン  検索開始します。  検索完了すると(中断しても)検索して見つかったファイル数が、メッセージボックスに表示されます。  検索して見つかった文字列数はステータスバーに表示されています。 ・Stopボタン  クリックすると[Find], [Replace], [Copy Files], [Copy Folders]を中断します。  途中まで実行した状態を元に戻したりはしません。 ・Replaceボタン  検索された物のうち、下のリストで選択されている(ハイライト表示)もののみ文字列置換を行います。  検索実行後1度しか置換実行できません。  再度置換したい場合は、検索からやり直してください。  置換完了すると(中断しても)置換したファイル数が、メッセージボックスに表示されます。  検索した文字列数はステータスバーに表示されています。 ・Restoreボタン  前回の置換結果を元に戻します。 3-3. Found List 検索結果がここにリストされます。 [Replace], [Copy Files], [Copy Folders]の対象となるのは選択されている(ハイライト表示)もののみです。 [Shift]キーや[Ctrl]キーを押しながら選択することで複数行を選択できます。 [Ctrl]+[A]ですべて選択します。 No. 検索されて見つかった件数がカウントされています。 File Path 検索されて見つかったファイルパスをSource Folderに対する相対パスで表示します。 Line 検索された文字列の開始行を表示します。 Column 検索された文字列の開始桁を表示します。 Found 検索された文字列を表示します。 Pointer 検索された文字列の開始位置をファイル先頭からの文字数で表示します。 ・Select Allボタン  リスト表示されているすべてを選択します。 ・Open Fileボタン  検索されたファイルをテキストエディタで開きます。  行、桁をコマンドライン引数にして渡すことができるのでエディタにその機能があれば検索位置で開くことが出来ます。  使用するエディタはiniファイル内の[FindSetting]セクション内のEditorキーに指定してください。  以下のパラメータを使用できます。  %P:ファイル名  %L:指定行  %C:指定桁  パス内の「\」は、「\\」とエスケープして書いてください。  環境変数も使用可能です。  指定方法はエディタに合わせてください。 例:VsCodeの場合 Editor=%LOCALAPPDATA%\\Programs\\Microsoft VS Code\\Code.exe --goto %P:%L:%C 例:EmEditorの場合 Editor=%ProgramFiles%\\EmEditor\\EmEditor.exe %P /l %L /cl %C 例:SakuraEditorの場合 Editor=C:\Program Files\sakura\sakura.exe %P -Y=%L -X=%C ・Copy Fileボタン  リスト内に選択されたファイルをCopy Folder内にファイルコピーします。 ・Copy Foldersボタン  リスト内に選択されたファイルをCopy Folder内にファイルコピーします。  Source Folder内のフォルダ階層を保ってコピーされます。 4. メニューバー説明 4-1. File メニュー ・Select Setting File... メニュー  設定INIファイルを切り替えることができます。 ・Export Setting File... メニュー  現在の設定INIファイルのコピーを作成できます。 4-2. Help メニュー ・Help メニュー  このファイルを表示します。 ・About Find String メニュー  バージョン情報等の表示をします。 5. 注意: ・自己責任で使用してください ・VB6 Runtimeがないと実行できません。 ・設定によってはかなり遅いです。 6. 既知の問題点 ・Shift-JISで表わせない文字からなるファイル名のファイルに対する操作を行なおうとするとエラーとなります。 2009/6/28 この問題点は一部は解消しました。 検索等を再帰的にサブフォルダに対して行なっているときにShift-JISであらわせない文字があっても正常に操作を行なえるようになりました。 ただし、INIファイル処理、ドラッグアンドドロップ、フォルダ選択ダイアログで正しく処理できないので、 検索のルートパスにShift-JISであらわせない文字列が含まれる場合エラーとなってしまいます。 7. サポート 基本的にサポートは行ないません。 バグ、表記の間違いの報告は歓迎します。 要望等も出していただいてかまいませんが、対応は期待しないでください。 8. Version History 2012-07-29 Ver.1.7.1 検索時に「パラメータが間違っています」のエラーが出て強制終了することがあることへの対大生を行なった。 ADODB.StreamのReadText(adReadAll)じに発生するがリトライすると成功するのでエラー発生時にもリトライするようにした。 2010-02-08 Ver.1.7.0 メニューバーのFileにSelect Setting Fileを追加した。 これによって、アプリ起動後に設定ファイルを切り替えられる。 メニューバーのFileにExport Setting Fileを追加した。 現状の設定ファイルのコピーを作成する。 2010-02-04 Ver.1.6.2 フォルダ選択TextBoxに直接入力したパスが反映されるるように修正。 フォルダ選択ダイアログボックスでキャンセルしたときにパスが正しくないとメッセージボックスが出るバグ修正。 2009-07-25 Ver.1.6.1 検索された行、桁位置確認ルーチンの高速化。 検索途中で中断したときに検索ファイル数が1個少なくメッセージ表示されていたのを修正。 2009-07-14 Ver.1.6.0 検索および置換文字列の前後スペースを無視しないようにした。 2009-07-01 Ver.1.5.4 Ver.1.5.3でフォルダ選択ダイアログボックスからのフォルダパス変更が検索パスに反映されなくなったバグ修正。 2009-06-28 Ver.1.5.3 正規表現の複数データ置換で2個目以降の変換文字列が間違えるバグ修正。 ファイルパスにユニコードでないと表わせない文字が含まれる場合の処理を正しく実行できるように修正。 (検索ルートパスに含まれる場合はまだ駄目) 2009-05-03 Ver.1.5.2 検索後結果リストがフォーカスされるようにした。 2009-04-23 Ver.1.5.1 検索完了後のメッセージボックスでエンターキーを押すと再度検索開始してしまう点を修正。 2009-04-12 Ver.1.5 Find, Replace, Extentions の文字列をTextBoxからComboBoxに変更して、履歴から選択できるように変更した。 デフォルトで32まで履歴表示するが、履歴数は、iniファイル内の[Setting]セクションにFindHistoryCnt, ReplaceHistoryCnt, ExtentionsHistoryCntキーで変更可能。 すべてのパス指定に環境変数を含められるようにした。 2009-03-05 Ver.1.4 タブキー移動順序を表示順に変更した。 Menu Bar 追加 2008-11-16 Ver.1.3.0 iniファイルのドラッグアンドドロップでexeファイルを開くことにより そのファイル設定を使用するように変更。 設定ファイルの指定なし(exeファイルのダブルクリック)では従来通り、 exeファイルと同一フォルダにあるiniファイルを使用する。 2008-03-30 Ver.1.2.0 検索リスト内でEnterキー押すとファイルを開くように修正 2007-03-10 Ver.1.1.0 検索文字入力欄でEnterキー押すと検索開始するように修正 2007-01-17 Ver.1.0.0 一応完成、公開 2006-01-11 First Reliese