RE:03227 ある記号をキーとして任意の箇所No.03979
kendo さん 03/11/28 16:02
 
山紫水明様、kendoです。
お世話になります。

以前、作っていただいたとても便利なマクロなのですが、
以前は windows98や2000で愛用していてノープロブレムでしたが、
最近、windows xpで秀丸を使用して、このマクロがうまく動きません。
どんなことが原因として考えられますでしょうか。

お手数おかけしてすみません。

> 次のマクロでお試しください。
>
>//----------------------------------------------//
>//Macro2
>call Change_search;
>$k1= "【";
>$k2= "】";
>$ps = input("数字の前のスペース");
>$rs = input("数字の後ろのスペース");
>disabledraw;

(以下、省略します。)

[ ]
RE:03979 ある記号をキーとして任意の箇所No.03980
山紫水明 さん 03/11/28 22:36
 
 kendoさん,こんばんは。

》以前は windows98や2000で愛用していてノープロブレムでしたが、
》最近、windows xpで秀丸を使用して、このマクロがうまく動きません。
》どんなことが原因として考えられますでしょうか。

 もう大分前のものですね。そのときの例題

 むかし【むかし】ある所におじいさんと【おばさん】が住んでいました。おじ
いさんは山にしばかりに、おばあさんは川に【せんたく】に行きました
。......

を使って試してみたら,

 むかし( 1 )ある所におじいさんと( 2 )が住んでいました。おじいさ
んは山にしばかりに、おばあさんは川に( 3 )に行きました。......

むかし
おばさん
せんたく

と期待通りに動いています。 WindowsXP(Home) + 秀丸4.02 です。
うまく動かないというのは,具体的にはどんな状態なのでしょうか。

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

[ ]
RE:03980 ある記号をキーとして任意の箇所No.03981
kendo さん 03/11/28 22:50
 
山紫水明様、kendoです。
お世話になります。
古い古い話ですみません。

> むかし( 1 )ある所におじいさんと( 2 )が住んでいました。おじいさ
>んは山にしばかりに、おばあさんは川に( 3 )に行きました。......
>
>むかし
>おばさん
>せんたく
>
>と期待通りに動いています。 WindowsXP(Home) + 秀丸4.02 です。
>うまく動かないというのは,具体的にはどんな状態なのでしょうか。
どういうわけか、上の例で言うと、

せんたく
せんたく
せんたく

とすべて同じ、「せんたく」としてテキスト末尾にカッコ内の文字列が置かれてしま
うのです。
Windows XP (pro) で秀丸は4.0かと思います。
(思いますというのは、仕事場のマシーンでふだん家ではwindows2000なものですか
ら。)

[ ]
RE:03981 ある記号をキーとして任意の箇所No.03982
山紫水明 さん 03/11/29 08:48
 
 kendoさん,こんにちは。

》どういうわけか、上の例で言うと、

》せんたく
》せんたく
》せんたく

》とすべて同じ、「せんたく」としてテキスト末尾にカッコ内の文字列が置かれ
》てしまうのです。

 「その他」→「動作環境」→「編集」→「クリップボードの履歴」を取るにチ
ェックする必要があります。一度調べてください。
 逆にご自宅のマシンでこのチェックを外して調べていただければ,職場のマシ
ンと同じ結果が出るのではないかと思います。

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

[ ]
RE:03982 ある記号をキーとして任意の箇所No.03983
kendo さん 03/11/29 10:45
 
山紫水明様、
kendoです。ご連絡ありがとうございます。

 そう言えば、職場のものは「クリップボードの履歴」を取るになっていませんでし
た。(常駐ではない。)月曜日にちゃんと確認してみようと思います。

> 「その他」→「動作環境」→「編集」→「クリップボードの履歴」を取るにチ
>ェックする必要があります。一度調べてください。
> 逆にご自宅のマシンでこのチェックを外して調べていただければ,職場のマシ
>ンと同じ結果が出るのではないかと思います。
 たくさんのリクエストや問い合わせがあり、山紫水明様はお忙しいと思いますが、
また希望をのべさせてください。(自分がマクロを書けないので、思いつきばかりで
すみません。)

 それはこのマクロは【 】で囲んだ部分を抜き出していますが、これから連想しま
した。
 たとえばカッコ記号の変わりに ▼ ▲をカッコと見なして、それである文字列を
括って前処理したテキストで、その括られた部分を捨てるか、または別の場所(テキ
ストの末尾など)に吐き出すマクロは可能でしょうか。前処理されていたテキストか
らは▼文字列▲部分は消えてなくなるわけです。
 (カッコ記号でなくて▼ ▲を使うのは本来の目的のカッコ記号まで影響を受ける
といけないので、あまり使用するとは思えない「カッコもどき」の▼ ▲を想定して
います。)
  
 なぜこんなことを思いついたかと言いますと、ちょっと長いのでは簡単に端折りま
すが、ずっと長いことVZを使っていて、そのときsyoさんという方のstoolというマ
クロを愛用しておりました。
 いま述べた操作はその一部なのですが、今回の山紫水明様に作っていただいたもの
とわりと似ているので思いついたのです。

 これを便利だと思ったのは、たとえば何か文章をほかの人にテキストファイルで書
いてもらいます。受け取った文章に▼文字列▲で私のコメントを入れます。相手に見
てもらって、相手はたとえば▽文字列△でその人自身のコメントを入れて返事をしま
す。それを私が最終的に見て、文章を手直しして、最終的にマクロ処理で▼文字列▲
と▽文字列△の部分を消してしまいます。そうして離れた人とも共同で文章がまとめ
られます。
 そんなわけでそうしたことができないかなと思いました。
 
 山紫水明様がいまアップ中の「変換リストによる連続置換 Ver2.00」から連想して
stool的なことをもう一つちょっと考えています。
 それはあとで別のスレッドで、記事をアップさせてください。
 

[ ]
RE:03983 ある記号をキーとして任意の箇所No.03985
山紫水明 さん 03/11/29 16:17
 
 kendoさん,こんにちは。

》 たとえばカッコ記号の変わりに ▼ ▲をカッコと見なして、それである文
》字列を括って前処理したテキストで、その括られた部分を捨てるか、または別
》の場所(テキストの末尾など)に吐き出すマクロは可能でしょうか。前処理さ
》れていたテキストからは▼文字列▲部分は消えてなくなるわけです。

 まずはこれからやってみます。次のマクロでできますか?

//------- CutMiddle.mac ----------------------------
//  指定文字間の文字列を切り取る

$kd1 = "▲";//前文字初期値:変更できます
$kd2 = "▼";//後文字初期値:変更できます
$k1 = input( "指定する前文字は?", $kd1 );
if( $k1 == "" ) endmacro;
$k2 = input( "指定する後文字は?", $kd2 );
if( $k2 == "" ) endmacro;
disabledraw;
if( selecting ) {
    #sel = 1;
    #handle1 = hidemaruhandle(0);
    cut;
    openfile "/h";
    #handle2 = hidemaruhandle(0);
    paste;
}
gofiletop;
#i = 1;
while( 1 ) {
    searchdown2 $k1;
    if( !result ) break;
    beginsel;
    searchdown $k2;
    if( !result ) break;
    right;
    cut;
    #i = #i + 1;
}
enabledraw;
question "切り取った文字列を書き出しますか?";
if( result ) {
    gofileend;
    insert "\n";
    while( #i > 1 ) {
        insert "\n";
        up;
        poppaste;
        golinetop;
        delete;
        golineend;
        backspace;
        golinetop;
        #i = #i - 1;
    }
    insert "【切り取った文字列】\n";
}
if( #sel ) {
    gofileend;
    insert "\n";
    selectall;
    copy;
    setactivehidemaru #handle1;
    paste;
    closehidemaruforced #handle2;
}
endmacro;
//----------------------------------------------//

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

[ ]
RE:03985 ある記号をキーとして任意の箇所No.03986
kendo さん 03/11/29 16:38
 
山紫水明様、
kendoです。お世話になります。
さっそく試してみました。

>》 たとえばカッコ記号の変わりに ▼ ▲をカッコと見なして、それである文
>》字列を括って前処理したテキストで、その括られた部分を捨てるか、または別
>》の場所(テキストの末尾など)に吐き出すマクロは可能でしょうか。前処理さ
>》れていたテキストからは▼文字列▲部分は消えてなくなるわけです。
>
> まずはこれからやってみます。次のマクロでできますか?
>
>//------- CutMiddle.mac ----------------------------
>//  指定文字間の文字列を切り取る

短い文字列ですと。

【切り取った文字列】
の下に、うまく吐き出されますが、長い文字列(全角で80桁をかなり越えるものな
ど)ですとちょっとうまく行きません。

【切り取った文字列】
の上に、左端の区切り文字と長目の文字列が来て
そして
【切り取った文字列】
が来て、
残りの文字列が続きます。

上の私の文章の引用部分を改行を取り、一続きの論理行にして
「その括られた部分を捨てるか、または別の場所(テキストの末尾など)に吐き出す
マクロは可能でしょうか。」を吐き出したとしてテストしたのが次です。

---------------------出力例
〓その括られた部分を捨てるか、または別の場所(テキストの末尾など)に吐き出す
マク【切り取った文字列】
は可能でしょうか。
---------------------出力例終わり

気長に待ちますので、お時間のありますとき、またご検討をよろしくお願いいたしま
す。

[ ]
RE:03986 ある記号をキーとして任意の箇所No.03987
kendo さん 03/11/29 16:44
 
自己レスです。
私の場合、〓 @をカッコ代わりにしてみました。

>---------------------出力例
>〓その括られた部分を捨てるか、または別の場所(テキストの末尾など)に吐き出す
>マク【切り取った文字列】
>は可能でしょうか。
>---------------------出力例終わり
また、上の例は、鶴亀が自動的に改行して記事をアップしておりますが、
実際の「秀丸」上の出力では2行目の

 マク【切り取った文字列】 

が上の行の文字列の後に続いて、それで1行分の論理行となっています。

[ ]
RE:03986 ある記号をキーとして任意の箇所No.03988
山紫水明 さん 03/11/29 17:55
 
 kendoさん,こんにちは。

》長い文字列(全角で80桁をかなり越えるものなど)ですとちょっとうまく行
》きません。

 長い行についての処理が不十分だったようです。
32〜48行,次のもの入れ換えてみてください。

question "切り取った文字列を書き出しますか?";
if( result ) {
    gofileend;
    insert "\n";
    while( #i > 1 ) {
        insert "\n";
        up;
        poppaste;
        golinetop2;
        delete;
        golineend2;
        backspace;
        golinetop2;
        #i = #i - 1;
    }
    insert "【切り取った文字列】\n";
}

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

[ ]
RE:03988 ある記号をキーとして任意の箇所No.03989
kendo さん 03/11/29 18:18
 
山紫水明さま、
kendoです。

試して見ましたが、ばっちりだと思います。
ありがとうございます。

このマクロが優れているのは囲みの記号がどんどん変えられることだと思います。

私の想定では二人のやりとりでした(たとえば▼ ▲ と▽ △の組み合わせ)。
しかし囲みの記号や文字列が任意に変えられるのですから、3,4人でも(当然もっ
とたくさんでも)記号を変えれば、共同で作業ができます。

このマクロ、ライブラリにアップはなさらないのでしょうか?
いずれにしましても、また大切に愛用いたします。

>
> 長い行についての処理が不十分だったようです。
>32〜48行,次のもの入れ換えてみてください。

[ ]
RE:03983 ある記号をキーとして任意の箇所No.03992
kendo さん 03/12/01 20:54
 
山紫水明様 kendoの自己レスです。

> そう言えば、職場のものは「クリップボードの履歴」を取るになっていませんでし
>た。(常駐ではない。)月曜日にちゃんと確認してみようと思います。
教えていただいた通りやってみましたらバッチリでした。ありがとうございます。
OSには関係なかったのですね。

[ ]