ファイル名を指定して検索するNo.10798
ならい さん 01/12/22 15:24
 
いつも初歩的な質問で恐縮です。
ファイルAとファイルBを開いて上下に並べた状態で、ファイルA上のテキストを選択
し、その文字列についてファイルBを検索したいと思います。
このようなファイル名を指定して検索をするにはどうすればよいのでしょうか。
マクロのserchコマンドを使用すればよいと思ったのですが、ファイル名の指定の仕
方がよくわかりません。
よろしくお願い致します。

[ ]
RE:10798 ファイル名を指定して検索するNo.10799
きいろいまふらあ さん 01/12/22 16:39
 
>ファイルAとファイルBを開いて上下に並べた状態で、ファイルA上のテキストを選択
>し、その文字列についてファイルBを検索したいと思います。

マクロの流れとしては
1.上のウィンドウで選択している文字列を記憶
2.下のウィンドウに移動
3.記憶した文字列を検索
ということになるかと。
お知りになりたいのは2.の方法ということですかね?

>このようなファイル名を指定して検索をするにはどうすればよいのでしょうか。
>マクロのserchコマンドを使用すればよいと思ったのですが、ファイル名の指定の仕
>方がよくわかりません。

ってことはファイル名はわかってるんですよね?
マクロヘルプの「秀丸管理」のとこにご所望の情報があります。

findhidemaru(ファイル名) でファイル名からウィンドウの番号を取得して
hidemaruhandle(ウィンドウの番号) でウィンドウハンドルを取得して
setactivehidemaru ウィンドウハンドル でそのウィンドウをアクティブに

というのがさしあたりの常道でしょうか?

ウィンドウは二つしか開いてないんだから、ファイル名とかめんどくさいこと言
わずに、「いまアクティブでない方のウィンドウで検索する」ってことなら、単
に nexthidemaru(これはマクロヘルプでは「ウィンドウ系文」ってページに解
説があります)とかを使えばよいですけど、前提条件が違う(ウィンドウが3つ
開いているとか)場合のチェックとかが面倒です。

なお、マクロの(プログラミングの)話であれば4番会議室が適切です。
#って、マクロの話でよかったんですよね?

[ ]
RE:10799 ファイル名を指定して検索するNo.10801
ならい さん 01/12/23 11:42
 
きいろいまふらあ さん。
さっそく分かりやすく教えて頂きましてありがとうございました。

>マクロの流れとしては
>1.上のウィンドウで選択している文字列を記憶
>2.下のウィンドウに移動
>3.記憶した文字列を検索
>ということになるかと。
実は、searchコマンドでパラメータを指定してできるのかな、と思っていた
のでした^^;)

>に nexthidemaru(これはマクロヘルプでは「ウィンドウ系文」っ
>てページに解説があります)とかを使えばよいですけど、
おかげさまで、nexthidemaruで、思っていた操作をさせることができました。

あとすみません、ちょっと話しがずれますが、現在ファイルAとBを別々の
秀丸で開いて縦に並べているのですが、[ウィンドウ]-[2つに分割]のように
別々のファイルを上下にできるだけ近づけた形で表示する方法はないもので
しょうか。

>なお、マクロの(プログラミングの)話であれば4番会議室が適切です。
>#って、マクロの話でよかったんですよね?
実は、4番会議室もちょっとのぞいたんですが、あまり人がいらっしゃらな
かったようなので、こちらに来てしまったのでした^^;)。

[ ]
RE:10801 ファイル名を指定して検索するNo.10802
きいろいまふらあ さん 01/12/24 00:46
 
>おかげさまで、nexthidemaruで、思っていた操作をさせることができました。

お役に立てたようでなによりです。

>あとすみません、ちょっと話しがずれますが、現在ファイルAとBを別々の
>秀丸で開いて縦に並べているのですが、[ウィンドウ]-[2つに分割]のように
>別々のファイルを上下にできるだけ近づけた形で表示する方法はないもので
>しょうか。

「できるだけ近づけた形」ってのはどーいうことなんでしょう?ファンクション
キーやツールバー、ルーラーなどを非表示にすれば、上下に並べた二つの秀丸の
テキスト同士の距離は短くなりますけど、そーいうことじゃなさそうですよね?

念のためですが、一つの秀丸(ウィンドウ)の中に二つのファイルの内容を表示
させることはできません。無理矢理ってんなら、一方のファイルの末尾にもう一
方のファイルの内容を貼り付ける(その上でうまいとこで「2つに分割」する)
って手がありますが、これはもはや「別々のファイル」とは言えないですし。や
っぱり無理ですね、私の知る限りでは。

ところで、なんで近づけたいんでしょ?
画面を広く使いたいとかそーいうことですか?

>実は、4番会議室もちょっとのぞいたんですが、あまり人がいらっしゃらな
>かったようなので、こちらに来てしまったのでした^^;)。

話のタネさえあれば、どこからともなくわらわらとわいてむらがってくると思い
ますけど。(^^;

[ ]
RE:10801 ファイル名を指定して検索するNo.10803
山紫水明 さん 01/12/24 06:55
 
 ならいさん,こんばんは。

》あとすみません、ちょっと話しがずれますが、現在ファイルAとBを別々の
》秀丸で開いて縦に並べているのですが、[ウィンドウ]-[2つに分割]のように
》別々のファイルを上下にできるだけ近づけた形で表示する方法はないもので
》しょうか。

 それに似たようなマクロを使っていましたので,ウィンドウ一覧拡張マクロの
一つとしてライブラリにアップしておきました。明日になれば,登録されると思
います。
 お気に召すかどうかわかりませんが,一度見てみてください。

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

[ ]
RE:10802 ファイル名を指定して検索するNo.10804
ならい さん 01/12/24 09:31
 
きいろいまふらあさん
ありがとうございます。

>ところで、なんで近づけたいんでしょ?
>画面を広く使いたいとかそーいうことですか?
実は、マニュアルのバージョンアップの翻訳をしています。
で、新バージョンの文章を旧バージョンの類似箇所の文章と比較するために、それら
の文(パラグラフ)間の距離ができるだけ近い方が作業がしやすいと思いまして。

>「できるだけ近づけた形」ってのはどーいうことなんでしょう?ファンク
> ション>キーやツールバー、ルーラーなどを非表示にすれば、上下に並べ
> た二つの秀丸のテキスト同士の距離は短くなりますけど、そーいうこと
>じゃなさそうですよね?
なるほど、そういう手もありましたね。
試してみます。


[ ]
RE:10803 ファイル名を指定して検索するNo.10812
ならい さん 01/12/25 17:38
 
山紫水明さん
ありがとうござます。

> それに似たようなマクロを使っていましたので,ウィンドウ一覧拡張
> マクロの一つとしてライブラリにアップしておきました。
さっそく使わせて頂きました。
2つのウィンドウの切り換えるマクロが便利そうです。

あと、2つのファイル内容を比較するマクロもお作りになっておられるの
ですね。このマクロを応用させて頂いて、ファイル全体ではなく段落単位
(指定範囲)で比較できないものか模索中です。
また質問するかもしれませんがよろしくお願い致します。




[ ]
RE:10812 ファイル名を指定して検索するNo.10819
山紫水明 さん 01/12/25 21:40
 
 ならいさん,こんばんは。

》あと、2つのファイル内容を比較するマクロもお作りになっておられるの
》ですね。このマクロを応用させて頂いて、ファイル全体ではなく段落単位
》(指定範囲)で比較できないものか模索中です。

 今度,選択範囲の比較もできるようにバージョンアップすることにします。

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

[ ]
RE:10819 ファイル名を指定して検索するNo.10821
ならい さん 01/12/25 23:54
 
山紫水明さん
こんばんは

> 今度,選択範囲の比較もできるようにバージョンアップすることにし
> ます。
え、本当ですか!!
なんというありがたいお言葉。
首を長〜くしてお待ちしています。
よろしくお願いします。

[ ]
RE:10821 選択範囲のファイル比較No.10857
山紫水明 さん 01/12/26 21:54
 
 ならいさん,こんばんは。

》首を長〜くしてお待ちしています。

 あまり首を長くし続けると,首の関節が痛んでお気の毒ですので(^^),ライブ
ラリにアップしました。明日,多分登録されると思います。

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

[ ]
RE:10857 選択範囲のファイル比較No.10861
ならい さん 01/12/28 11:06
 
山紫水明さん
ものすごく速い対応ありがとうございます(^ ^)。

ところが、マクロファイル末尾の説明を読んでさっそく使わせて頂こうとしたのです
が、どうもうまくいきません(/_;)。
どうなるかと言いますと、
・2つ秀丸ファイルAとBを開いてマクロを実行した場合は、DOS窓が開いて処理を始め
るのですが、fcresult.txtというファイルが空で表示されます(同一箇所があっても)。
・2つの秀丸ファイルAとBの両方の類似部分を選択して、ファイルAでマクロを実行し
た場合は、一瞬DOS窓が表れた後で、「ファイルAは既に他の秀丸が開いています。構
わずに開きますか。...」というメッセージが出てしまいます。

マクロの内容の解析を試みたのですが、私のマクロの知識をはるかに超えた内容で、
どうもよく分かりません^^;)。
お手数をおかけし申し訳ありませんがよろしくお願い致します。
ちなみに私の環境は、Windows2000Pro 秀丸3.9です。

すっかりこの会議室にそぐわないマクロの話しになってしまってすみません。


[ ]
RE:10861 選択範囲のファイル比較No.10862
山紫水明 さん 01/12/28 16:33
 
 ならいさん,こんにちは。

》・2つの秀丸ファイルAとBの両方の類似部分を選択して、ファイルAでマクロを実
》行した場合は、一瞬DOS窓が表れた後で、「ファイルAは既に他の秀丸が開いてい
》ます。構わずに開きますか。...」というメッセージが出てしまいます。

「動作環境」→「排他制御」の設定はどうなっているのでしょうか?
こちらでは,
「ファイルの排他制御」 しない
「秀丸で同じファイルを開くとき」 ファイルの読み込み直しをする
としています。

》ちなみに私の環境は、Windows2000Pro 秀丸3.9です。
こちらは, Windows98 です。

 どうもOSがらみの可能性もあるようです。
 次がもっとも基本的な部分です。これで試してみてください。
//--------------------------------------------------------------------
runsync "fc /n \""+filename(0)+"\" \""+filename(1)+"\" > c:\\temp.txt";
openfile "c:\\temp.txt";
endmacro;
//--------------------------------------------------------------------
(実験のあと,"c:\\temp.txt"は削除してください。)

 これでうまくいかないとなると,こちらには実験する環境がありませんので,
今のところお手上げです。
 どなたか Windows2000 お使いの方で,助言いただける方ありませんか。<m(__)m>

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

[ ]
RE:10862 選択範囲のファイル比較No.10863
秀丸担当 さん 01/12/28 17:48
 
>//--------------------------------------------------------------------
>runsync "fc /n \""+filename(0)+"\" \""+filename(1)+"\" > c:\\temp.txt";
>openfile "c:\\temp.txt";
>endmacro;
>//--------------------------------------------------------------------

これを試してみたところ、NT系ではcmd /c をつけなくてはだめなようです。
同じことをスタートメニューの[ファイル名を指定して実行]でやってみる
と、NT系ではcmd /cをつけなくてはリダイレクトが働きませんでした。

[ ]
RE:10863 選択範囲のファイル比較No.10864
山紫水明 さん 01/12/28 20:51
 
 秀丸担当さん,こんばんは。

》これを試してみたところ、NT系ではcmd /c をつけなくてはだめなようです。
》同じことをスタートメニューの[ファイル名を指定して実行]でやってみる
》と、NT系ではcmd /cをつけなくてはリダイレクトが働きませんでした。

 秀丸担当さんにやっていただくとは,どうも恐縮です。

ならいさん,
 ということなので,一度,

runsync "cmd /c fc /n \""+filename(0)+"\" \""+filename(1)+"\" > c:\\temp.txt"
;

でやってみてください。

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

[ ]
RE:10864 選択範囲のファイル比較No.10865
ならい さん 01/12/29 09:40
 
山紫水明さん、秀丸担当さん、ありがとうございます。
 
>「動作環境」→「排他制御」の設定はどうなっているのでしょうか?
>こちらでは,
>「秀丸で同じファイルを開くとき」 ファイルの読み込み直しをする
> としています。
これが「問い合わせる」になっていましたので、「読み込みなおす」にしたら、確認
のダイアログは出なくなりました。

//--------------------------------------------------------------------
runsync "cmd /c fc /n \""+filename(0)+"\" \""+filename(1)+"\" > c:\\temp.txt";
openfile "c:\\temp.txt";
endmacro;
//--------------------------------------------------------------------
を試してみました。うまく実行されたようです^^;)。
実は、どういう結果になればOKなのか分からなかったので、"cmd /c"を入れる前のマ
クロをWindows98のマシンで実行してみたのですが、大体似たようなレイアウトの結
果になりました(すみません大雑把な言い方で^^;)。

それで、Windows98で実行したfcresult.txtの内容を見たのですが、この比較は、ど
ういう単位で行われているのでしょうか。実は、比較しようとしているのが、英文の
2つのパラグラフなのですが、同じ内容のパラグラフを比較しても、リストにいくつ
も「異なる部分」が上がってきてしまいます。例えば、10行くらいのパラグラフだと
10くらい上がってきます。比較の単位は、改行というわけでもなさそうですが....
runsync の行の"fc/n"に鍵があるかもしれないと思い、調べたのですが秀丸のマクロ
ヘルプからは見つけられませんでした。

したいと思っていることは、英文の2つのパラグラフの挿入または削除された語句を
見つけることなのですが、英文の文の場合、プログラムのように改行で独立した短い
文と違って、例えばパラグラフの最初の方に1つの単語が挿入されると、その分それ
以後の単語がずれ改行がずれていくので、取り扱いがだいぶ違うということなのでし
ょうか。

年の瀬にやっかいなことをお聞きしてすみません。
また、年が明けてお時間のあるときでけっこうですので、教えて頂けたら幸いです。
よろしくお願い致します。

[ ]
RE:10865 選択範囲のファイル比較No.10869
山紫水明 さん 01/12/29 22:10
 
 ならいさん,こんばんは。

》うまく実行されたようです^^;)。

 こちらでは実験できないだけに一安心です。

》実は、どういう結果になればOKなのか分からなかったので、"cmd /c"を入れる前
》のマクロをWindows98のマシンで実行してみたのですが、大体似たようなレイア
》ウトの結果になりました(すみません大雑把な言い方で^^;)。

 そうですね。その画面を整形して,それにタグジャンプできるようにしたもの
です。

》それで、Windows98で実行したfcresult.txtの内容を見たのですが、この比較
》は、どういう単位で行われているのでしょうか。実は、比較しようとしているの
》が、英文の2つのパラグラフなのですが、同じ内容のパラグラフを比較しても、
》リストにいく英英文au異なる部分」が上がってきてしまいます。例えば、10行
》くらいのパラグラフだ英英英0くらい上がってきます。比較の単位は、改行とい
》うわけでもなさそうですが....

 長い行は,120バイト程度の行に切り分けて比較しているようです。
 このマクロは比較的大きなファイルで行単位で比較するのに適しています。
 異なる行があれば,その行と前後の行を示します。
 ただし,行が切れてしまうため見にくくなるという欠点があります。
 とりあえず,行を連結するために,

replaceallfast "[A-Za-z ]\\f\\n +[0-9]+:  \\f[a-z ]", "\\0\\2", regular;

をマクロの60数行目

if( #select1 ) call ConvertNumber $file_1, #by1;

の直前に挿入してください。

》runsync の行の"fc/n"に鍵があるかもしれないと思い、調べたのですが秀丸のマ
》クロヘルプからは見つけられませんでした。

 これは秀丸の機能ではなくて,DOS のコマンドを呼び出して使っているものです。

》したいと思っていることは、英文の2つのパラグラフの挿入または削除された語
》句を見つけることなのですが、英文の文の場合、プログラムのように改行で独立
》した短い文と違って、例えばパラグラフの最初の方に1つの単語が挿入される
》と、その分そたた短l繧フ単語がずれ改行がずれていくので、取り扱いがだいぶ
》違うということなのでササたたうか。

 このような目的なら,ウィンドウ系コマンドの「他の秀丸との内容比較」が適
しているでしょう。コマンドをキー割り当てしてもできますが,次のようなマク
ロの方がわかりやすいかもしれません。
 比較するファイルを上下に並べて実行すると,相違箇所がわかると思います。

//------ FileComp2.mac -------------------------------------//
//ファイルを比較して相違箇所を示す。
//両ファイルの比較開始点にカーソルを置いて実行してください。
compfile 1;
if(result) {
    beginsel;
    wordrightsalnen;
    endsel;
    setactivehidemaru 1;
    beginsel;
    wordrightsalnen;
    endsel;
} else message "この後に相違箇所はありません!";
endmacro;
//-------------------------------------------------------//

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

[ ]