QGREPを使うためのマクロを登録しましたNo.01603
アルビレオ さん 00/11/11 23:49
 
アルビレオと申します。
その昔、乱土労馬さんのリクエストで作った、
「QGREPを秀丸標準のGrepのように使うためのマクロ」を
ちょっと改良してマクロライブラリに公開しました。

以前ここで話題に上がっていた「一致前後行の出力」などが簡単にできます。
マクロ自体は小さなものなのでうまく他のマクロと合体させて使ってください。

[ ]
RE:01603 QGREPを使うためのマクロを登録No.01604
なむnomoto さん 00/11/14 23:11
 

 アルビレオさん、初めまして


>「QGREPを秀丸標準のGrepのように使うためのマクロ」を

 やってみましたが、巧く作動しません。
 qgrepのバージョン制限があるのでしょうか?
 私のはV3.2です。Win95。秀丸は305です。

>以前ここで話題に上がっていた「一致前後行の出力」などが簡単にできます。

 期待してしまいました。(^^;)

>マクロ自体は小さなものなのでうまく他のマクロと合体させて使ってください。

 合体させてやるんですか? 
 スキップ検索とかフィールド検索をして、秀丸で表示するんですか?
 できるならどうして、秀丸だけで出来るようになっていないのか、
 昔から疑問の点です。(^^;)

 でも、山紫水明さんのzengogyo.mac で出来るようになりました。
 dengakuサーバーの最新版が必須ですけど。

 今ン所、山紫水明さんの前後行マクロを動かしています。




[ ]
RE:01604 QGREPを使うためのマクロを登録No.01605
アルビレオ さん 00/11/15 01:10
 
> アルビレオさん、初めまして

どうも、はじめまして。

> やってみましたが、巧く作動しません。
> qgrepのバージョン制限があるのでしょうか?
> 私のはV3.2です。Win95。秀丸は305です。

こちらのQGREPはVer.3.3です。
Ver.3.2でも動いていた記憶があるのですが、そのあと多少いじったせいかもしれま
せん。
秀丸のバージョンは3.05で動作を確認しました。

でも、一番可能性が高いのはマクロが QGREP32.EXE を見つけられていないことです。
QGREP32.EXE と QXLIB95.DLL は HIDEMARU.EXE のあるフォルダにあるでしょうか?
マクロのフォルダに置いても正しく動作しません。

>>マクロ自体は小さなものなのでうまく他のマクロと合体させて使ってください。
>
> 合体させてやるんですか? 

いえ、マクロをガンガン書ける人ならどんどん改造してねってことです。(^^;

> スキップ検索とかフィールド検索をして、秀丸で表示するんですか?
> できるならどうして、秀丸だけで出来るようになっていないのか、
> 昔から疑問の点です。(^^;)

私はむしろマクロや外部プログラムでできることはあまり秀丸本体には組み込まない
で欲しいです。
「一致前後行も出力」なんて、使わない人は絶対使わない機能ですから。
本体はシンプルにして、ユーザーが自分に必要な機能があれば追加するという形で。
最初から多機能な方がいいなら他にもいいエディタはありますから。

> でも、山紫水明さんのzengogyo.mac で出来るようになりました。
> dengakuサーバーの最新版が必須ですけど。
>
> 今ン所、山紫水明さんの前後行マクロを動かしています。

山紫水明さんのマクロに比べたら、私のは手抜きもいいところです。
でも、たぶんQGREPを使ったほうが高速かつ多機能です。
私じゃなくてarakenさんがえらいんですが。

私はマクロであまり複雑な処理をさせるのは好きではないのでこういったランチャー
っぽい
ものを作ったわけですが、やはりどうしてもプログラムのパス指定が問題になります
ね。

[ ]
RE:01605 QGREPを使うためのマクロを登録No.01610
なむnomoto さん 00/11/15 20:05
 
 アルビレオさん、

 有り難うございます。
                      なむnomotoです

>でも、一番可能性が高いのはマクロが QGREP32.EXE を見つけられていないことです。
>QGREP32.EXE と QXLIB95.DLL は HIDEMARU.EXE のあるフォルダにあるでしょうか?
>マクロのフォルダに置いても正しく動作しません。

 ありゃ、Qgrepep.exe / QXLIB95.DLL のフルパス(Qグレップのフォルダ)を記入
したのですが、hidemaruフォルダにドロップインするんですか。

>本体はシンプルにして、ユーザーが自分に必要な機能があれば追加するという形で。
>最初から多機能な方がいいなら他にもいいエディタはありますから。

 ううむ。確かにワープロのようになって欲しくないですね。

>山紫水明さんのマクロに比べたら、私のは手抜きもいいところです。
>でも、たぶんQGREPを使ったほうが高速かつ多機能です。
>私じゃなくてarakenさんがえらいんですが。

 あれそうなんですか。ちょっと期待してしまいました。
 前後行マクロの名前が誤解されやすいですね。山紫水明さんのマクロは、
 それ以外の機能が多いのに、前後行だけと思われてはイケナイですね。TXKファイ
ル検索対象スキップ検索が秀逸です。
 Win2k で不具合らしいですけど。原因を知りません。

>私はマクロであまり複雑な処理をさせるのは好きではないのでこういったランチ
>ャーっぽい
>ものを作ったわけですが、やはりどうしてもプログラムのパス指定が問題になりま
>すね。

 工夫してもそりゃだめですね。マシンごとに違うんでしょうから。
 私は書けるユーザーじゃないから解りませんけど。インストーラー
 でも巧くゆかないみたいです。
 hidemaruフォルダなら心配ない訳ですよね。

[ ]
RE:01610 QGREPを使うためのマクロを登録No.01611
山紫水明 さん 00/11/15 21:20
 
    なむnomotoさん,こんばんは。

》 ありゃ、Qgrepep.exe / QXLIB95.DLL のフルパス(Qグレップのフォルダ)を記

》したのですが、hidemaruフォルダにドロップインするんですか。

 私もやってみました。Qgrep のパス指定でちゃんとできましたよ。(^^;
 前後行を取り出すのでしたら,Qgrep の方が遙かに高速です。

 ところで,ここに書くのも何ですが,場所をお借りして,

  Zengogyo.mac Ver.3.06 の595行目付近,return の直前に

setactivehidemaru #handle1;

という文がありますが,この1行不要ですので削除して下さい。
 最初に実行したときにおかしな動作をします。2回目以降は無害ですので,
うっかり消し忘れたようです。
 残念ながら, Windows 2000 の問題とは関係ありませんでした。(T_T)

 では, (^^)/~
                                        山紫水明


[ ]
RE:01610 QGREPを使うためのマクロを登録No.01612
アルビレオ さん 00/11/16 02:04
 
> ありゃ、Qgrepep.exe / QXLIB95.DLL のフルパス(Qグレップのフォルダ)を記
>入したのですが、hidemaruフォルダにドロップインするんですか。

おっと、パスを指定していたんですか。なら、秀丸のフォルダに入れる必要はありま
せん。
おそらくパスの区切り文字が"\"になっているのではないでしょうか?
マクロ内でパスを書くときは区切り文字は"\\"にする必要があります。

以前このマクロを人に使ってもらったときにQGREP.EXEをマクロフォルダにいれて
「うごかない〜」と言われた事があったので、なむnomotoさんの場合もそうではない
かと
思ったわけでして。(^^;

> 前後行マクロの名前が誤解されやすいですね。山紫水明さんのマクロは、
> それ以外の機能が多いのに、前後行だけと思われてはイケナイですね。TXKファイ
>ル検索対象スキップ検索が秀逸です。

山紫水明さんのマクロとは微妙に違いますが、QGREPには「2行を連結」というオプシ
ョンもあります。
複数行の検索もある程度はこれでカバーできます。

山紫水明さんのマクロと合体させて、
1.スキップ処理などをマクロで行う。
2.QGREPにパラメータを渡す。
3.検索結果をマクロで処理する。
といったことをすれば、前後行マクロとQGREPの両方の機能を使えます。
しんどいからやらないけど。(笑)

あと、私のマクロを改造してオリジナルのマクロを作る場合はQGREPが参照するINIフ
ァイルを
マクロごとに別のINIファイルを指定すると便利です。
QGREPはダイアログを表示せずに即実行する機能もあるので定常的な設定はINIファイ
ルに、
そのつど変更する設定はコマンドラインで渡すようにすると、「フォーマット変換
ツール」
のようなものも作れます。

ブロック出力を使えば掲示板などのテキスト形式のログファイルから検索キーワード
を含む
トピックだけを抜き出すようなことも…(あいまい検索もできるし)

[ ]
RE:01611 QGREPを使うためのマクロを登録No.01613
なむnomoto さん 00/11/17 00:04
 

  山紫水明さん
         なむnomotoです


> 私もやってみました。Qgrep のパス指定でちゃんとできましたよ。(^^;
> 前後行を取り出すのでしたら,Qgrep の方が遙かに高速です。

 ちゃんと、ファイル名のフルパスをコピーして¥¥の半角を2個
 書いたのにイ、もう一度挑戦。
  でも、TXKの行アドレスは作りませんよね。

> ところで,ここに書くのも何ですが,場所をお借りして,
>
>  Zengogyo.mac Ver.3.06 の595行目付近,return の直前に
>
>setactivehidemaru #handle1;
>
>という文がありますが,この1行不要ですので削除して下さい。

  良かった。明日プレス渡しでした。
  消します。有り難うございます。

> 残念ながら, Windows 2000 の問題とは関係ありませんでした。(T_T)

 うう、残念。
                     なむnomoto

[ ]
RE:01612 QGREPを使うためのマクロを登録No.01614
なむnomoto さん 00/11/17 00:12
 


  "\\"ですよね。そうなっているんですが何か違うらしいです。
  再度挑戦。


>山紫水明さんのマクロと合体させて、
>1.スキップ処理などをマクロで行う。
>2.QGREPにパラメータを渡す。
>3.検索結果をマクロで処理する。
>といったことをすれば、前後行マクロとQGREPの両方の機能を使えます。
>しんどいからやらないけど。(笑)

 そうなると、田楽サーバーだけじゃなくてQgrepも両方組み込めば、
 強力なマクロが作れるようになる、というわけですか。

>あと、私のマクロを改造してオリジナルのマクロを作る場合はQGREPが参照するINI
>ファイルを
>マクロごとに別のINIファイルを指定すると便利です。
>QGREPはダイアログを表示せずに即実行する機能もあるので定常的な設定はINIファ
>イルに、
>そのつど変更する設定はコマンドラインで渡すようにすると、「フォーマット変換
>ツール」
>のようなものも作れます。

 ふうむ。私には不可能なような気がしますが、可能性は広がりましたね。
 どなたか、何か他にもマクロを作っているのでしょうかねえ。
                       なむnomoto




[ ]
RE:01614 QGREPを使うためのマクロを登録No.01615
アルビレオ さん 00/11/17 03:23
 
>
>
>  "\\"ですよね。そうなっているんですが何か違うらしいです。
>  再度挑戦。

もしよろしければQGREPのパスを指定している行をここで教えていただけないでしょ
うか。
こちらで同じ場所においてテストしてみます。
OSの違いで動かないのかもしれませんが。(こちらはWin98SEです)

[ ]
RE:01615 QGREPを使うためのマクロを登録No.01616
なむnomoto さん 00/11/17 22:20
 

  アレビレオさん、こんばんわ
               なむnomotoです

>もしよろしければQGREPのパスを指定している行をここで教えていただけないでしょ
>うか。
>こちらで同じ場所においてテストしてみます。
>OSの違いで動かないのかもしれませんが。(こちらはWin98SEです)


 動きました。(^^;)

【最初の部分】
//下のコメントをはずし、QGREPを置いてあるパスを指定すると環境変数PATHを変えずに
//マクロを実行できます。
$qgrepdir = "D:\\QXediter\\QGREP32.EXE";//\\QGREP32.EXE

//$qgrepdir = "\"" + $qgrepdir + "qgrep32\"";

  下の行をコメント行にしなかったからです。私の頭はカラです。
  // を入れたら大丈夫でした。
  これで良いのですよね?



[ ]
RE:01616 QGREPを使うためのマクロを登録No.01617
アルビレオ さん 00/11/17 23:57
 
> 動きました。(^^;)
>
>【最初の部分】
>//下のコメントをはずし、QGREPを置いてあるパスを指定すると環境変数PATHを変え
>ずに
>//マクロを実行できます。
>$qgrepdir = "D:\\QXediter\\QGREP32.EXE";//\\QGREP32.EXE
>
>//$qgrepdir = "\"" + $qgrepdir + "qgrep32\"";
>
>  下の行をコメント行にしなかったからです。私の頭はカラです。
>  // を入れたら大丈夫でした。
>  これで良いのですよね?

えーと、私が意図していた書き方としては

$qgrepdir = "D:\\QXediter\\";
$qgrepdir = "\"" + $qgrepdir + "qgrep32\"";

こんな感じだったんですが、一応なむnomotoさんの書き方でも問題ありません。
でも、
>$qgrepdir = "D:\\QXediter\\QGREP32.EXE";//\\QGREP32.EXE
これではディレクトリの名前にスペースが含まれているとダメです。
QGREPを置く場所を変えたりする場合は気をつけてくださいね。

[ ]
RE:01617 QGREPを使うためのマクロを登録No.01621
なむnomoto さん 00/11/21 02:19
 

  アルビレオさん

            なむNOMOTOです

>えーと、私が意図していた書き方としては
>
>$qgrepdir = "D:\\QXediter\\";
>$qgrepdir = "\"" + $qgrepdir + "qgrep32\"";
>
>こんな感じだったんですが、一応なむnomotoさんの書き方でも問題ありません。

  そのようにしても動かなかったので、qgrep32.exe を入れたんです。
(なんでかな)きっと間違えたんでしょうね。
 で、qgrep32.exe がWになってしまうからと、下を// でコメントしたら、
 動いた。(^^;)

>でも、
>>$qgrepdir = "D:\\QXediter\\QGREP32.EXE";//\\QGREP32.EXE
>これではディレクトリの名前にスペースが含まれているとダメです。
>QGREPを置く場所を変えたりする場合は気をつけてくださいね。

 あれ、やはりスペース持ちフォルダ名はだめなんですか。
 秀丸マクロはそうなんですか。MS社のフォルダ名にスペースが
 あるのは、使わせないため? (そうらしい)
 それを回避するパス記入方法なんですか。しらなんだ。


[ ]
RE:01621 QGREPを使うためのマクロを登録No.01622
アルビレオ さん 00/11/22 01:55
 
アルビレオです

>  そのようにしても動かなかったので、qgrep32.exe を入れたんです。
>(なんでかな)きっと間違えたんでしょうね。
> で、qgrep32.exe がWになってしまうからと、下を// でコメントしたら、
> 動いた。(^^;)

そうなんですか…
私のところではちゃんと動いたんですが。不思議ですね。

> あれ、やはりスペース持ちフォルダ名はだめなんですか。
> 秀丸マクロはそうなんですか。MS社のフォルダ名にスペースが
> あるのは、使わせないため? (そうらしい)
> それを回避するパス記入方法なんですか。しらなんだ。

私はマイクロソフトは好きじゃないですが、MSがスペースを含むフォルダ名を多用す
るのは
こうでもしないとパスにスペースを含むと動作しないプログラムが
たくさん作られてしまうからだと思います。
両端にダブルクォートをつけるだけの簡単なことですが、忘れやすいんですよね。
秀丸のマクロとしてパスを書く場合は\でエスケープしなければいけないので

$dir="\"c:\\スペース付き フォルダ名\\qgrep.exe\"";

のような、わかりにくい書き方になってしまいます。
理解してしまえば簡単です。

[ ]