{ 【ソフト名】フォルダ検索 (バージョン 0.4) 【作 成 者】moka (連絡先:moka21@ybb.ne.jp) http://www.geocities.jp/moka21/teatime/ 【種 別】フリーソフトウェア 【ひまわりのバージョン】ver.1.31 【転 件】可 (転載条件:ご自由に) 【ひまわり本体への梱包】可 【実行時に利用作成するファイル】フォルダ検索.ini 【コメント】 指定フォルダ以下の全フォルダをリストアップし、 そのフォルダを対象に検索します。 ver.0.3からリストの書式が変わったので、 既存のリストは使わずに、再度リストアップしてください。 また、INIファイル名はソフト名と同じにしました。 }
マニュアル=「■使い方
●左上のメモ部品にフォルダをドラッグ&ドロップしてください。 ●フォルダ列挙ボタンを押して少し待ってください。 (下位フォルダが多いと時間がかかります) ●右上のコンボに検索キーワードを入力し、検索してください。 ●結果リストをダブルクリックするとフォルダを開きます。
■設定
●列挙したフォルダリストは、 メニューから保存して、次回起動時に読み込めます。 ●ツールを設定しておけば、リストで選択してツールで開けます。 ●ツールの設定はメニューか、ドラッグ&ドロップで出来ます。」
'---------------------------------------- ' GUI部品設定 '---------------------------------------- 母艦は、「フォルダ検索 0.4」 その、キー押した時は、もし、押されたキー=27ならば、エディタキーワードに、注目。 メモフォルダを、メモとして、作成。 その、ファイルドロップは、オン。 その、IMEは、オフ。その、幅は、200 フォルダ列挙ボタンを、ボタンとして、作成。 その、イベントは、( 母艦は、「フォルダ検索 - フォルダ列挙中...」 結果リスト=「」 リストフォルダの、アイテムは、「」。 (メモフォルダの、テキスト)を、反復( 作業リスト=「」 検索パス=それ もし、RIGHT(検索パス、1)=『\』でなければ、 検索パス=検索パス&『\』 検索パスが、フォルダか。 もし、それならば、下位フォルダ列挙。 ) 結果リストを、ソート。結果リストは、それ。 リストフォルダの、アイテムは、結果リスト。 保存フラグ=1 母艦は、「フォルダ検索 - フォルダ数={要素数(結果リスト)}」 )
リストフォルダを、リストとして、作成。 その、幅は、200 その、高さは、(母艦の、高さ)-(リストフォルダの、Y)-30 その、クリックした時は、( 画面クリア。 文字サイズ=10 それ=(リストフォルダの、高さ)+(リストフォルダの、Y) (10,それ)へ、移動。(リストフォルダの、テキスト)と、表示。 ) その、ダブルクリックした時は、( '(リストフォルダの、テキスト)を、エクスプローラーで開く。 「explorer {リストフォルダの、テキスト}」を、起動。 ) エディタキーワードを、コンボとして、作成。 その、サイズは、(220,10,470,35) その、キー押した時は、( 押されたキーで、条件分岐。 13の時、検索開始。 27の時、エディタキーワード=「」 ) ペーストボタンを、ボタンとして、作成。 その、サイズは、(470,10,550,35) その、イベントは、( クリップボードを、読む。 「\n」までを、切り取る。トリム。 エディタキーワードは、それ。 ) 検索ボタンを、ボタンとして、作成。 その、サイズは、(550,10,630,35) その、イベントは、( *検索開始 もし、エディタキーワード=「」ならば、待機。 母艦は、「フォルダ検索 - フォルダ検索中...」 リスト検索結果の、アイテムは、「」。 検索キーワード=英数半角変換(エディタキーワード) もし、検索オプション=0ならば、検索_そのまま。 もし、検索オプション=1ならば、( 検索キーワードを、「 」で、区切る。 検索キーワードは、それ。 検索_AND。 ) もし、検索オプション=2ならば、( 検索キーワードを、「 」で、区切る。 検索キーワードは、それ。 検索_OR。 ) それは、(リスト検索結果の、アイテム)。要素数。 母艦は、「フォルダ検索 - ヒット数=」& 「{それ}/{要素数(結果リスト)}」 {履歴を重複チェックして追加} 履歴フラグは、オフ。 履歴は、(エディタキーワードの、アイテム)。 履歴を、反復( もし、それが、(エディタキーワードの、テキスト)ならば( 履歴の,(回数-1)行目を,行削除。 履歴フラグは、オン。抜ける。 ) ) もし、履歴フラグならば、履歴は、それ。 履歴=(エディタキーワードの、テキスト)&「\n」&履歴。 エディタキーワードの、アイテムは、履歴。 待機。 ) リスト検索結果を、リストとして、作成。 その、サイズは、(220,45,630,335) その、ダブルクリックした時は、( '(リスト検索結果の、テキスト)を、エクスプローラーで開く。 「explorer {リスト検索結果の、テキスト}」を、起動。
) エディタツールパスを、エディタとして、作成。 その、ファイルドロップは、オン。その、IMEは、オフ。 その、サイズは、(220,345,530,370) ツール開くボタンを、ボタンとして、作成。 その、サイズは、(530,345,630,370) その、イベントは、( もし、エディタツールパス=「」ならば、待機。 もし、リスト検索結果=-1ならば、待機。 (エディタツールパス&「 」&(リスト検索結果の、テキスト))を、起動。 ) '---------------------------------------- ' メニュー設定 '---------------------------------------- ファイルメニューを、メニュー作成。 ファイルメニューに、リスト開くメニューを、メニュー追加。 その、イベントは、( 「リストファイル|*.dat;*.lst|全て|*.*」の、読み込みファイル選択。 もし、それ=「」ならば、待機。 ファイル名=それ ファイル内容に、ファイル名を、読む。 ファイル内容から、1番目の、段落を切り出す。 「\n\n」を、「\n」に、置換。 メモフォルダは、それ。 ファイル内容から、2番目の、段落を切り出す。 リストフォルダの、アイテムは、それ。 結果リスト=それ。 母艦=「フォルダ検索 - フォルダ数={要素数(結果リスト)}」 ) ファイルメニューに、リスト保存メニューを、メニュー追加。 その、イベントは、( 「リストファイル|*.dat;*.lst|全て|*.*」の、書き込みファイル選択。 もし、それ=「」ならば、待機。 ファイル名=それ それは、メモフォルダ&「\n」&(リストフォルダの、アイテム)。 ファイル名へ、書く。 保存フラグ=0 ) 設定メニューを、メニュー作成。 設定メニューに、起動時にIMEオンメニューを、メニュー追加。 その、イベントは、設定メニューイベント。 設定メニューに、起動時に前回のリストファイルを読むメニューを、メニュー追加。 その、イベントは、設定メニューイベント。 設定メニューに、検索オプションメニューを、メニュー追加。 検索オプションメニューに、検索オプション0メニューを、メニュー追加。 その、テキストは、「そのまま」。その、値は、1。 その、イベントは、検索オプションメニューイベント。 検索オプションメニューに、検索オプション1メニューを、メニュー追加。 その、テキストは、「AND」 その、イベントは、検索オプションメニューイベント。 検索オプションメニューに、検索オプション2メニューを、メニュー追加。 その、テキストは、「OR」 その、イベントは、検索オプションメニューイベント。 設定メニューに、ツールのパスメニューを、メニュー追加。 その、イベントは、( 一時フォルダは、作業フォルダ。 もし、エディタツールパス=「」でなければ( エディタツールパスから,パスを切り出す。 作業フォルダは、それ。 ) 「exe」の、読込ファイル選択。 もし、それが、「」でなければ、エディタツールパスは、それ。 作業フォルダは、一時フォルダ。 ) 設定メニューに、履歴をクリアメニューを、メニュー追加。 その、イベントは、( 履歴=「」。エディタキーワードの、アイテムは、「」。 ) 設定メニューに、区切り線メニューを、メニュー追加。その、テキストは、「-」 設定メニューに、アンインストールメニューを、メニュー追加。 その、イベントは、( 「{INIパス} を削除しますか?」と、二択。 もし、それ=いいえならば、待機。 INIパスを、ファイル削除。 ) ヘルプメニューを、メニュー作成。 ヘルプメニューに、マニュアルメニューを、メニュー追加。 その、イベントは、マニュアルを、言う。 ヘルプメニューに、区切り線2メニューを、メニュー追加。その、テキストは、「-」 ヘルプメニューに、ひまわりするメニューを、メニュー追加。 その、イベントは、( デバッグ文の、メモ記入。 もし、それ=「」ならば、待機。 デバッグ文=それ。ひまわりする。 ) ヘルプメニューに、取り込むメニューを、メニュー追加。 その、イベントは、( '一時フォルダは、作業フォルダ。 「hmw|*.hmw|txt|*.txt|*|*.*」の、読込ファイル選択。 もし、それ=「」ならば、待機。 '一時フォルダに、作業フォルダ変更。 それを、取り込む。 )
*起動処理 保存フラグ=0。検索オプション=0。 デバッグ文=「」。履歴=「」。 終了処理に、終了処理設定。 母艦の、変更した時は、母艦リサイズ。
INIパス=母艦のパス&「フォルダ検索.ini」 INIパスが、存在するか。 もし、それならば、( INIパスから、フォームの位置復元。 INIパスの、INIファイル開く。 「DirSearch」の、「Word」を、INIファイル読む。 「;」で、区切る。 エディタキーワードの、アイテムは、それ。 「DirSearch」の、「Tool」を、INIファイル読む。 エディタツールパスは、それ。
「DirSearch」の、「IME」を、INIファイル読む。 エディタキーワードの、IMEは、それ。 起動時にIMEオンメニューの、値は、それ。
「DirSearch」の、「Search」を、INIファイル読む。 もし、それ=「」ならば、それ=0 検索オプション=それ 検索オプション0メニューの、値は、0。 「検索オプション{それ}メニューの、値は、1。」を、ひまわりする。 「DirSearch」の、「Load」を、INIファイル読む。 起動時に前回のリストファイルを読むメニューの、値は、それ。 「DirSearch」の、「LoadPath」を、INIファイル読む。 ファイル名=それ もし、(起動時に前回のリストファイルを読むメニューの、値)かつ(ファイル名<>「」)ならば、( ファイル内容に、ファイル名を、読む。 ファイル内容から、1番目の、段落を切り出す。 「\n\n」を、「\n」に、置換。 メモフォルダは、それ。 ファイル内容から、2番目の、段落を切り出す。 リストフォルダの、アイテムは、それ。 結果リストは、それ。 母艦は、「フォルダ検索 - フォルダ数={要素数(結果リスト)}」 ) INIファイル閉じる。 ) エディタキーワードに、注目。 待機。
*終了処理 もし、保存フラグならば、( 「リストを保存しますか?」と、三択。 もし、それが、キャンセルならば、(終了処理に、終了処理設定。待機。) 'もし、それが、いいえならば、終わる。 もし、それが、はいならば、( 「リストファイル|*.dat;*.lst|全て|*.*」の、書き込みファイル選択。 もし、それ=「」ならば、(終了処理に、終了処理設定。待機。) ファイル名=それ それは、メモフォルダ&「\n」&(リストフォルダの、アイテム)。 ファイル名へ、書く。 ) ) INIパスが、存在するか。 もし、それ=0ならば、( 「{INIパス} に各種設定を保存しますか?」と、二択。 もし、それが、いいえならば、終わる。 ) もし、それ=1ならば、( 母艦元のサイズ。 INIパスへ、フォームの位置記録。 INIパスの、INIファイル開く。 それは、履歴。履歴=「」 反復( もし、回数<=5ならば、履歴=「{履歴}{それ}\n」 違えば、抜ける。 ) それは、履歴。「\n」を、「;」に、置換。 「DirSearch」の、「Word」に、INIファイル書く。 それは、エディタツールパス。 「DirSearch」の、「Tool」に、INIファイル書く。
それは、起動時にIMEオンメニューの、値。 「DirSearch」の、「IME」に、INIファイル書く。 それは、検索オプション。 「DirSearch」の、「Search」に、INIファイル書く。 それは、起動時に前回のリストファイルを読むメニューの、値。 「DirSearch」の、「Load」に、INIファイル書く。 それ=ファイル名 「DirSearch」の、「LoadPath」に、INIファイル書く。 INIファイル閉じる。 ) 終わる。
*母艦リサイズ 検索ボタンの、Xは、(母艦の、幅)-(検索ボタンの、幅)-10 ペーストボタンの、Xは、(検索ボタンの、X)-(ペーストボタンの、幅) エディタキーワードの、幅は、(ペーストボタンの、X)-(エディタキーワードの、X) エディタツールパスの、Yは、(母艦の、高さ)-(エディタツールパスの、高さ)-15 ツール開くボタンの、Yは、エディタツールパスの、Y。 ツール開くボタンの、Xは、(母艦の、幅)-(ツール開くボタンの、幅)-10 エディタツールパスの、幅は、(ツール開くボタンの、X)-(エディタツールパスの、X) リスト検索結果の、幅は、(母艦の、幅)-(リスト検索結果の、X)-10 リスト検索結果の、高さは、(エディタツールパスの、Y)-(リスト検索結果の、Y)-10 リストフォルダの、高さは、(母艦の、高さ)-(リストフォルダの、Y)-15 戻る。
*下位フォルダ列挙 検索パスの、フォルダ列挙。 結果リスト=結果リスト&検索パス&「\n」 一時リスト=それ 検索パスから、パスを切り出す。 作業パス=それ。 一時リストを、反復(作業リスト=作業パス&それ&「\\」&「\n」&作業リスト) もし、作業リスト=「」でなければ、( 検索パス=作業リスト#0 作業リストの、0行目を、行削除。 作業リストは、それ。 下位フォルダ列挙へ、飛ぶ。 ) 戻る。
*設定メニューイベント もし、(イベントオブジェクトの、値)ならば、イベントオブジェクトの、値=0 違えば、イベントオブジェクトの、値=1 戻る。
*検索オプションメニューイベント 検索オプション0メニューの、値は、0。 検索オプション1メニューの、値は、0。 検索オプション2メニューの、値は、0。 イベントオブジェクトの、値は、1。 (イベントオブジェクトの、名前)の中で、8から、1つ、切り出す。 検索オプションは、それ。 戻る。
*検索_そのまま 結果リストを、反復( s=それ。S=英数半角変換。 'Sを、「*{検索キーワード}*」で、マッチ。 Sの中で、検索キーワードが、何文字目。 'もし、それ<>「」ならば、 もし、それ>0ならば、 リスト検索結果の、アイテムは、(リスト検索結果の、アイテム)&「{s}\n」 ) 戻る。 *検索_AND 結果リストを、反復( 検索フラグ=0。s=それ。S=英数半角変換。 検索キーワードを、反復( 'Sを、「*{それ}*」で、マッチ。 Sの中で、それが、何文字目。 'もし、それ<>「」ならば、 もし、それ>0ならば、検索フラグ=検索フラグ+1 ) もし、検索フラグ=要素数(検索キーワード)ならば、 リスト検索結果の、アイテムは、(リスト検索結果の、アイテム)&「{s}\n」 ) 戻る。
*検索_OR 結果リストを、反復( s=それ。S=英数半角変換。 検索キーワードを、反復( 'Sを、「*{それ}*」で、マッチ。 Sの中で、それが、何文字目。 'もし、それ<>「」ならば、( もし、それ>0ならば、( リスト検索結果の、アイテムは、(リスト検索結果の、アイテム)&「{s}\n」 抜ける。 ) ) ) 戻る。 |