ある記号をキーとして任意の箇所で連番付 No.05563
ポワン さん 07/05/26 19:34
 
こんにちは、マクロが間違えてましたので削除し再度質問します。
宜しくお願いいたします。

過去ログにあったものを拝借し自分で少し手を加えたのですが、
「$sに入った記号が検索された場合、連番を最初の1に戻す」
ということを加えたいのですがどうすればいいでしょうか?

例えば。$k="#",$s="@"とすると
「むかしむかしある#所におじいさん#と@おばさんが#住んで#いました#。@おじいさ
んは#山にしばかりに、おばあさんは#川にせんたくに行きました。」
これをマクロ実行すると

今のだと
「むかしむかしある#1所におじいさん#2と@おばさんが#3住んで#4いました#5。@おじ
いさんは#6山にしばかりに、おばあさんは#7川にせんたくに行きました。」
となりますが、

「むかしむかしある#1所におじいさん#2と@おばさんが#1住んで#2いました#3。@おじ
いさんは#1山にしばかりに、おばあさんは#2川にせんたくに行きました。」
のようになるようにしたいのです。

なお、全く別なところで同じような質問を一度しています。
こちらに質問した方が早く回答頂けるかと思い、重複になりますが
宜しくお願いいたします。

//----------------------------------------------//
//Macro1
$k = input("記号は?");
$s = input("数字を1に戻す記号は?");
gofiletop;
#i = 1;
while( 1 ) {
searchdown2 $k;
if(!result) break;
delete;
insert $k +str(#i);
#i = #i + 1;
}
endmacro;
//----------------------------------------------//

[ ]
RE:05563 ある記号をキーとして任意の箇所No.05564
山紫水明 さん 07/05/26 20:19
 
 ポワンさん,
 次のようにしたらどうでしょう。

//----------------------------------------------//
//Macro1
$k = input("記号は?");
$s = input("数字を1に戻す記号は?");
gofiletop;
#i = 1;
while( 1 ) {
    searchdown2 $k + "|" + $s, regular;
    if(!result) break;
    if( gettext( foundtopx, foundtopy, foundendx, foundendy ) == $s ) {
        #i = 1;
        right;
    } else {
        delete;
        insert $k +str(#i);
        #i = #i + 1;
    }
}
endmacro;
//----------------------------------------------//

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

[ ]
RE:05564 ある記号をキーとして任意の箇所No.05565
ポワン さん 07/05/26 21:08
 
こんばんは、山紫水明さま。
ご回答頂きありがとうございます。
質問の元となるマクロ、勝手に拝借させて頂きました^^;

早速回答頂いた通りに変更したところ思い通りになりました。
ありがとうございます。
また質問する機会がありましたら宜しくお願いいたします。
では、失礼します。


[ ]