範囲指定つき一括置換についてNo.05127
乱土 労馬 さん 00/02/27 14:12
 

 なんか置換ネタばかりですいません。痴漢じゃないのが救いですが(^^;)。

 マクロ会議室の方で聞くほうがいいのかもしれませんが、秀丸の仕様に関係あり
そうなので。

 HTMLファイルの中に使っているダブルクォートを実体参照文字(&quote;、ですね)
に置換するマクロを組んでみました。やってることは単純で、タグの終わりからタグの
始めまでを範囲指定して、その中で使われている[”]を[&quote;]に変換しようと
いうものです。で、気がついたのですが範囲指定したときの置換って、選択した行の
行末(キャリッジリターンまで)までに適用されてしまうんですね。これって昔から
そういう仕様だったでしょうか?

 正確に指定した範囲だけに置換を適応させるのは難しいのでしょうか?結構
ツラいのですけど、これ(^^;)

[ ]
RE:05127 範囲指定つき一括置換についてNo.05129
きいろいまふらあ さん 00/02/27 22:40
 
きいろいまふらあです。

>  正確に指定した範囲だけに置換を適応させるのは難しいのでしょうか?結構
> ツラいのですけど、これ(^^;)

仕様としての吟味等々は秀丸担当様におまかせするとして、
とりあえず対象範囲の末尾にダミーの改行を入れるという作戦はありそうですね。
undoのこととか考えると全く同じことにはならないですけど。
#ファイル先頭の文字を含む検索と似てるな、これ。

で、私からも実際の選択範囲と検索/置換対象範囲が一致する仕様への変更に一票追
加です。

[ ]
RE:05129 範囲指定つき一括置換についてNo.05130
乱土 労馬 さん 00/02/27 23:17
 

  きいろいまふらあさんこんばんわ、乱土です。さっそくどうもです。

>仕様としての吟味等々は秀丸担当様におまかせするとして、
>とりあえず対象範囲の末尾にダミーの改行を入れるという作戦はありそうですね。

 なるほどです。ですがちょっと考えてみたのですけれど、対象になるのがHTMLファ
イル
でして、なるべく余分な改行は入れたくないんですね。文章中にリンクがあったりす
ると
そこで改行が入り、ブラウザで見たときに微妙な空白が入っちゃったりしてちと美し
くない(^^;)。

 できればファイルのほうは今のままで、置換処理をしたいのですが………。


 それと、これこそマクロ会議室行きのネタなような気がするのですが、
マクロの実行を一行ずつ、何かのキーを押すごとに行うようなオプションって
ないでしょうか?懐かしのWTERM(爆)のマクロにあったようなヤツ。

 そういうマクロを書け?うーむごもっとも(^^;)


 あ、&quote;→まちがいですね。"でした(^^;)

[ ]
RE:05130 範囲指定つき一括置換についてNo.05131
きいろいまふらあ さん 00/02/27 23:52
 
まふです。

> でして、なるべく余分な改行は入れたくないんですね。文章中にリンクがあったりす

もちろん置換後に元に戻すわけですよ。
#undo云々はそーいう意味です。

>  そういうマクロを書け?うーむごもっとも(^^;)

そんなマクロ書けますか?(^^;
条件分岐、サブルーチンはなんとかなるとしても、
変数の値の保持とか、resultコードとか。
iniファイルとか駆使して?
うううう。
非常に面白そうな話ですが手を出す気力はないです。(^^;

しかし……確かに欲しいな、マクロのステップ実行。

[ ]
RE:05127 範囲指定つき一括置換についてNo.05142
ひろ さん 00/02/28 16:10
 
 乱土 労馬さん今日は、ひろです。
> いうものです。で、気がついたのですが範囲指定したときの置換って、選択した行の
> 行末(キャリッジリターンまで)までに適用されてしまうんですね。これって昔から
> そういう仕様だったでしょうか?
 はい以前からこの様な仕様でした。ただ以前は行単位で選択されていなく
ても、警告 message がでませんでした。

>  正確に指定した範囲だけに置換を適応させるのは難しいのでしょうか?結構
 速度は落ちますが、macro を組めば何とかなります。というわけで MES4
に sample マクロを書いておきます。

[ ]
RE:05129 範囲指定つき一括置換についてNo.05150
秀丸担当 さん 00/02/28 16:50
 
>>  正確に指定した範囲だけに置換を適応させるのは難しいのでしょうか?結構
>> ツラいのですけど、これ(^^;)
>
>仕様としての吟味等々は秀丸担当様におまかせするとして、

いちおう昔からに仕様になっています。
いいかげんこれも変えないといけないかな...

[ ]
RE:05150 範囲指定つき一括置換についてNo.05172
乱土 労馬 さん 00/02/29 16:04
 

>いちおう昔からに仕様になっています。
>いいかげんこれも変えないといけないかな...

 ぜ、ぜひお願いいたします(平伏)

[ ]
RE:05142 範囲指定つき一括置換についてNo.05173
乱土 労馬 さん 00/02/29 16:05
 

>>  正確に指定した範囲だけに置換を適応させるのは難しいのでしょうか?結構
> 速度は落ちますが、macro を組めば何とかなります。というわけで MES4
>に sample マクロを書いておきます。

 ひろさん、どうもありがとうございます。今ちょっと本業がたてこんでて、
ゆっくり見れていないのですが、時間をとって研究させていただきたいと思
います。

[ ]
RE:05172 範囲指定つき一括置換についてNo.05175
番頭++ さん 00/02/29 16:55
 
//  範囲して置換
    if( basename == "" ){   endmacro;   }   //  無題です。
    if( ! selecting ){  endmacro;   }   //  範囲選択されていない。
    $wk1 = filename2;
    $wk2 = "temp9.txt"; //  仮の作業ファイル
    cut;    //  切り取り
    openfile "/h " + $wk2;
    selectall;  //  ゴミは消す
    paste;  //  貼り付け
    replaceallfast "\"", "&quote";
    selectall;  cut;
    $wk2 = filename2;
    setactivehidemaru hidemaruhandle(findhidemaru($wk1));
    closehidemaruforced hidemaruhandle(findhidemaru($wk2));
    paste;
endmacro;


[ ]