Tech-Ezo (Hokkaido PC and Network Users Group)
 Top Page  |  What's Tech-Ezo  |  Next Seminar  |  Seminar Log  |  Seminar Plan  |  Tips  |  life  |  Link  |
Scr.003 ステップアップ WSH - 使えそうなスクリプトを作って見よう
前ページへ   [ステップアップ WSHへ戻る]   次ページへ


■  Level.14   ちょっと加工するだけでこんなことも
■ ■

 前回のLevel13では、ちょっとした修正で出来るスクリプトの改善を紹介しました。今回もその続きです。ただし、今回のヤツは「それってどうよ?」というようなレベルの修正ですので、あまり期待しないで下さいね(笑

テキスト全体を見られるようにする

 level13で検索文字列を赤くし、ヒットした部分を一見して判別できるようにしました。しかし、文脈からその前後の行まで見たいと思うこともありますね。level13aでは、本文へのリンクを張りましたので、本文を表示させて確認すれば良いのですが、確認したい所が沢山あると、いちいちクリックして該当部分を探して読む、というのはちょっと面倒です。

 そこで、検索文字列がヒットした行だけでなく、その前後の行も表示させるようと考えました。で、ふと思ったのですが、前後何行表示させましょう??。1行?、3行?、それとも10行でしょうか?。オプションを追加して使う人に指定して貰うのもいいかもしれません。...などと色々考えていたら面倒になってきまして(ぃゃ、本当に面倒くさがり屋なんです<私)、いっそのこと全文を表示してしまえという考えに至りました(笑。それなら、修正も簡単そうですしね。

 ということで、早速修正ポイントですが、Level13で修正した場所と同じFileSrh()関数内の22行目付近になります。

全文表示させる為の変更部分 * ダウンロード(level14.lzh)
022
023
024
025
026
027
028
                If regEx.Test(tmpLine) Then           ' 指定の文字列を含むか?
                    repStr = "<font color=#FF0000>" & regEx.Pattern & "</font>"
                    tmpLine = regEx.Replace(tmpLine, repStr)
                    srhFlg =1                         ' 検索がヒットしたので1にする
                End If
                srhLine = srhLine & TextFile.Line - 1 & ":" & tmpLine & vbCr
                                                      ' 読み込んだ行のマージ

 もともと、24行目と25行目の間にあった2行を、26行目の下に移動してインデントを揃えただけです。とても簡単ですね。

 この修正の意味するところは、修正前は検索がヒットしたときだけ検索行を表示対象にしていましたが、これを、22行目のIf文の外に出すことで、検索がヒットしようがしまいがお構いなしに表示対象にする。というようにした訳です。

 ただし、検索がヒットしたときの処理として検索文字列を赤くする処理は残してあるので、ただ全文表示させるだけではなく、検索文字列が赤くなるという仕掛けとなっています。

実行してみる

 さて、たったこれだけの修正ですが、結果はどのように変化するのでしょうか?。さっそく実行してみましょう。Level13同様、level14.htaをダブルクリックし、デフォルト入力のまま「検索」ボタンをクリックして下さい。

level14.htaを実行すると...

 適当に下にスクロールダウンして見ると、検索にヒットした文字列が赤くなっているのが分かると思います。多少(ぃゃ、かなり?)、検索結果が長くなってしまう所は難点ですが、ヒットした場所をざっと流しながら見たい、という時には結構便利なんじゃないかと思います。



 さて、今回はちょっと短いですがここまでです。そして、このLevel14をもって今まで作成してきたテキスト検索スクリプト作成は終わりとなります。

 改めて振り返って見ると「どれが完成系だよ?」と言わそうですが(汗、コマンドライン起動バージョンですとLevel10a、HTAバージョンだと、Level13、Level13a、そしてこのLevel14がそれぞれ使えるモノになっているのではないかと思います。

 ここまでの理解で後は自力で勉強していけると思いますので、オンラインヘルプなど見ながら自分の好きなようにオプションを付けて行くことでスキルアップを図って頂ければ嬉しい限りです。

 えぇっと、検索スクリプトは今回で最後なのですが、これまで使ってきたサブフォルダを再帰的に辿っていくロジックは何かと使えますので、次回は、再帰的処理の応用例を説明して最終回にしたい思います。

それでは、次回までご機嫌よう(笑。



前ページへ   [ステップアップ WSHへ戻る]   次ページへ
-
※全ては自己責任でお願いします。
※当サイトに関するご連絡は tomomo_c@hotmail.com までお願いします。
最終更新日 2004.10.28