文中の数値を連続加算するマクロ。No.21118
とね さん 06/03/28 09:50
 
みなさん、こんにちは〜きもとです。

HTMLファイル中の
 <input type="hidden" name="ProductId" value="2"> 
 <input type="hidden" name="ProductId" value="3"> 
 <input type="hidden" name="ProductId" value="4"> 
 <input type="hidden" name="ProductId" value="5"> 

 <input type="hidden" name="ProductId" value="115"> 

 後の"2","3"〜の数値に230を加算して

 <input type="hidden" name="ProductId" value="232"> 
 <input type="hidden" name="ProductId" value="233"> 
 <input type="hidden" name="ProductId" value="234"> 
 <input type="hidden" name="ProductId" value="235"> 

 <input type="hidden" name="ProductId" value="345"> 

としたいのですが、便利なマクロはありますでしょうか?
変換前の数値は2〜115まであります。

よろしくお願いします。

[ ]
RE:21118 文中の数値を連続加算するマクロNo.21119
ENCODINGSHIFTJIS さん 06/03/28 13:25
 
元が、連番なら、連番のマクロが使えると思います

[ ]
RE:21119 文中の数値を連続加算するマクロNo.21120
ENCODINGSHIFTJIS さん 06/03/28 15:14
 
// 全置換による、十進 加算器 + 230 の場合。

// 頭にゼロ詰めして3桁にする
 replaceall "\"([0-9]{1})\">" , "\"0\\1\">" , regular;
 replaceall "\"([0-9]{2})\">" , "\"0\\1\">" , regular;
// 十の位を加算
 replaceall "\"([0-9])0" , "\"+\\13" , regular;
 replaceall "\"([0-9])1" , "\"+\\14" , regular;
 replaceall "\"([0-9])2" , "\"+\\15" , regular;
 replaceall "\"([0-9])3" , "\"+\\16" , regular;
 replaceall "\"([0-9])4" , "\"+\\17" , regular;
 replaceall "\"([0-9])5" , "\"+\\18" , regular;
 replaceall "\"([0-9])6" , "\"+\\19" , regular;
 replaceall "\"([0-9])7" , "\"+\\1+0" , regular;
 replaceall "\"([0-9])8" , "\"+\\1+1" , regular;
 replaceall "\"([0-9])9" , "\"+\\1+2" , regular;
// 桁上がりを吸収
 replaceall "(\"\\+)0\\+" , "\\11" , regular;
 replaceall "(\"\\+)1\\+" , "\\12" , regular;
// 中間状態マークを消去
 replaceall "\"+" , "\"" ;
// 百の位を加算
 replaceall "(\")0" , "\\12" , regular;
 replaceall "(\")1" , "\\13" , regular;

[ ]
RE:21118 文中の数値を連続加算するマクロNo.21121
白雲斎 さん 06/03/28 15:32
 
こんにちは、白雲斎です。

以下のマクロはいかがですか?


// マクロ実行後、キーボード・キーで操作する
// Aキー        :一気に置き換える
// Cキー        :置き換えて次へ
// Escキー      :マクロを終了する
// その他キー   :置き換えずに次を検索する

#plus = 230;    // 加算する値
#isAuto = false;
searchdown "(?<=\\<value *= *[\"'])[0-9]+", regular;
while( result )
{
    if( #isAuto )
    {
        $s = gettext(seltopx, seltopy, selendx, selendy, 1);
        insert str(val($s) + #plus);
    }
    else
    {
        #k = inputchar("A:一気, C:置換+次, Esc:終了, 他キー:次へ");
        if( #k == 0x1B ) endmacro;
        if( #k > 0x5A ) #k = #k - 32;
        if( #k == 0x41 )    // A
        {
            #isAuto = true;
            continue;
        }
        else if( #k == 0x43 )   // C
        {
            $s = gettext(seltopx, seltopy, selendx, selendy, 1);
            insert str(val($s) + #plus);
        }
    }
    finddown;
}
endmacro;

[ ]
RE:21119 文中の数値を連続加算するマクロNo.21122
とね さん 06/03/28 16:18
 
 きもとです。

>元が、連番なら、連番のマクロが使えると思います

 ありがとうございます。
 早速NumberingX.macをDLしてきて実行してみました。

 う〜んどのように初期設定していいのか難しいですね。

 試行錯誤したのですが、関係ないところも変換されてしまい
 ましたので、とりあえず中止しました。
 
 折角教えていただいたのにもかかわらず、私の能力不足で
 うまくできませんでした。すみません。m(_ _)m

[ ]
RE:21121 文中の数値を連続加算するマクロNo.21123
とね さん 06/03/28 16:27
 
 白雲斎さま、こんにちは〜きもとです。

 ありがとうございます。しかしながら、

 ”2”が”2302”になってしまいました。(~_~;)

 あと、希望の場所以外も変わってしまったので
 今回の件には合わなかったようです。すみません。
 

[ ]
RE:21123 文中の数値を連続加算するマクロNo.21124
白雲斎 さん 06/03/28 16:56
 
こんにちは、白雲斎です。

> ”2”が”2302”になってしまいました。(~_~;)

「動作環境」の「検索」ツリーにある「検索での表示」が「点滅表示」に設定さ
れているようですね。
前回投稿したマクロは、「範囲選択」であることを前提にしたものでした。

前回のマクロを「範囲選択」の設定で実行するか、どちらの状態でも動くように
変更した末尾のマクロを試してください。


// マクロ実行後、キーボード・キーで操作する
// Aキー        :一気に置き換える
// Cキー        :置き換えて次へ
// Escキー      :マクロを終了する
// その他キー   :置き換えずに次を検索する

#plus = 230;    // 加算する値

#findMode = searchmode;
if( #findMode == 0 ) call SwitchFindMode 1;

#isAuto = false;
searchdown "(?<=\\<value *= *[\"'])[0-9]+", regular;
while( result )
{
    if( #isAuto )
    {
        $s = gettext(seltopx, seltopy, selendx, selendy, 1);
        insert str(val($s) + #plus);
    }
    else
    {
        #k = inputchar("A:一気, C:置換+次, Esc:終了, 他キー:次へ");
        if( #k == 0x1B ) goto MEND;
        if( #k > 0x5A ) #k = #k - 32;
        if( #k == 0x41 )    // A
        {
            #isAuto = true;
            continue;
        }
        else if( #k == 0x43 )   // C
        {
            $s = gettext(seltopx, seltopy, selendx, selendy, 1);
            insert str(val($s) + #plus);
        }
    }
    finddown;
}

MEND:
if( #findMode == 0 ) call SwitchFindMode 0;
endmacro;

SwitchFindMode:
    openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
    writeregnum "SelectFound", ##1;
    closereg;
    envchanged;
return;

[ ]
RE:21124 文中の数値を連続加算するマクロNo.21125
とね さん 06/03/28 18:17
 
 白雲斎さま、きもとです。

 ありがとうございます。マクロを入れ替えまして、13行目をちょっと手直しして
 無事変換できました。\(@^O^@)/
 
 直したところは
 13行目searchdown "(?<=\\<ProductId\" value *= *[\"'])[0-9]+", regular;
              ------------------
 です、valueを使うところがほかにもあったので、手直ししました。

 これで番号をいつでも変更できます。ありがとうございました。

[ ]
RE:21118 文中の数値を連続加算するマクロNo.21128
きいろいまふらあ さん 06/03/29 15:08
 
大昔作った拙作のマクロがお役にたつかもしれません。

http://www.pluto.dti.ne.jp/~gogh/macro/

に置いてある「Renumbering for 秀丸エディタ」の「増減モード」というので、
そんな処理ができるんじゃないかと思います。

ドキュメントにniftyの会議室でサポートすると書いてありますが、すでにそち
らが閉鎖されてますので何かありましたら、

公開マクロサポート会議室(秀丸エディタ関連)
http://www.maruo.co.jp/turukame/4/

にてお願いいたします。

既に解決済みでしたら読み飛ばしてください。

[ ]
RE:21128 文中の数値を連続加算するマクロNo.21130
とね さん 06/03/29 19:30
 
 きいろいまふらあ様、こんばんは〜きもとです。

 ご紹介ありがとうございます。
 
 解決済みですが、ダウンロードして試してみます。

[ ]