<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Latest comments for language '秀丸マクロ' on doukaku.org</title><link>http://ja.doukaku.org/lang/hidemaru_macro/</link><description>Latest comments for language '秀丸マクロ' on doukaku.org(long)</description><language>ja</language><lastBuildDate>Sat, 20 Mar 2010 22:46:04 -0000</lastBuildDate><item><title>ivoryworks's comment on IPv4アドレスのマスクの変換
</title><link>http://ja.doukaku.org/comment/9444/</link><description>



&lt;a href="http://ja.doukaku.org/253/"&gt;IPv4アドレスのマスクの変換&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/253/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/253/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  &lt;pre class='compact'&gt;・Mask2Bit：
　　ネットマスク(文字型)を渡すとビット値(数値型)を返却します。
・Bit2Mask：
　　ビット値(数値型)を渡すとネットマスク(文字型)を返却します。

/* ネットマスクをビット値に変換 */
call Mask2Bit input("input netmask.");
message str(##return);

/* 逆変換 */
call Bit2Mask val(input("input value."));
message $$return;

* パラメータの妥当性はチェックしてません。
* Bin2DecとDec2Binは2進数⇔10進数のサブルーチンです。
&lt;/pre&gt;
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;Mask2Bit:
    ##c=0;
    ##bit=0;
    while (strlen($$1)) {
        $b = leftstr($$1,1);
        $$1 = rightstr($$1, strlen($$1)-1);
        if ($b == &amp;quot;.&amp;quot;) {
            ##c = ##c + 1;
        } else if (val($b) == 0 &amp;amp;&amp;amp; $b != &amp;quot;0&amp;quot;) {
            break;
        } else {
            $$aar[##c] = $$aar[##c] + $b;
        }
    }
    while (0 &amp;lt;= ##c) {
        call Dec2Bin val($$aar[##c]);
        while (strlen($$return)) {
            ##bit = ##bit + val(leftstr($$return,1));
            $$return = rightstr($$return, strlen($$return)-1);
        }
        ##c = ##c - 1;
    }
    return ##bit;

Bit2Mask:
    $$b_str = &amp;quot;&amp;quot;;
    $$mask = &amp;quot;&amp;quot;;
    while (strlen($$b_str) &amp;lt; 32) {
        if (0&amp;lt;##1) {
            $$b_str = $$b_str + &amp;quot;1&amp;quot;;
        } else {
            $$b_str = $$b_str + &amp;quot;0&amp;quot;;
        }
        ##1 = ##1 - 1;
    }
    while (strlen($$b_str)) {
        call Bin2Dec leftstr($$b_str, 8);
        $$mask = $$mask + str(##return);
        $$b_str = rightstr($$b_str, strlen($$b_str)-8);
        if (strlen($$b_str)) {
            $$mask = $$mask + &amp;quot;.&amp;quot;;
        }
    }
    return $$mask;

Bin2Dec:
    ##dec = 0;
    ##val = 1;
    while (strlen($$1)) {
        if (rightstr($$1, 1) == &amp;quot;1&amp;quot;) {
            ##dec = ##dec + ##val;
        }
        ##val = ##val*2;
        $$1 = leftstr($$1, strlen($$1)-1);
    }
    return ##dec;

Dec2Bin:
    $$str = &amp;quot;&amp;quot;;
    if (##1!=0) {
        while (##1!=1) {
            $$str = str(##1%2)+$$str;
            ##1 = ##1/2;
        }
        $$str = &amp;quot;1&amp;quot;+$$str;
    } else {
        $$str = &amp;quot;0&amp;quot;;
    }
    return $$str;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/9444/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/9444/</guid></item><item><title>ivoryworks's comment on クリップボードへの転送
</title><link>http://ja.doukaku.org/comment/9443/</link><description>



&lt;a href="http://ja.doukaku.org/188/"&gt;クリップボードへの転送&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/188/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/188/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  &lt;pre class='compact'&gt;単に入力した文字列が表示されたように見えますが、
実際にはクリップボードを経由しています。
&lt;/pre&gt;
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt;1
2
3&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;setclipboard input(&amp;quot;input str.&amp;quot;);
beginclipboardread;
message getclipboard;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/9443/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/9443/</guid></item><item><title>ivoryworks's comment on LL Golf Hole 8 - 横向きのピラミッドを作る
</title><link>http://ja.doukaku.org/comment/9442/</link><description>



&lt;a href="http://ja.doukaku.org/203/"&gt;LL Golf Hole 8 - 横向きのピラミッドを作る&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/203/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/203/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  &lt;pre class='compact'&gt;秀丸マクロ。
なかなか小さくならない。



&lt;/pre&gt;
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt;1
2
3
4
5
6
7
8&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;#h=4;
while(y-#h+1&amp;lt;#h){
    #a=y-#h+1;
    if(#a&amp;lt;0)#a=#a*-1;
    $p=&amp;quot;&amp;quot;;
    while(strlen($p)&amp;lt;#h-#a)$p=$p+&amp;quot;*&amp;quot;;
    insert$p+&amp;quot;\n&amp;quot;;
}
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/9442/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/9442/</guid></item><item><title>ivoryworks's comment on キッチンタイマー
</title><link>http://ja.doukaku.org/comment/9440/</link><description>



&lt;a href="http://ja.doukaku.org/240/"&gt;キッチンタイマー&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/240/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/240/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  &lt;pre class='compact'&gt;入力は秒で。
タイムアウトで味気ないbeepが出力されます。
&lt;/pre&gt;
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;#sec = val(input(&amp;quot;input sec.&amp;quot;));
insert str(#sec)+&amp;quot;\n&amp;quot;;
#start = tickcount;
while (#sec) {
    if ((#start + 1000) &amp;lt;= tickcount) {
        #start = tickcount;
        #sec = #sec - 1;
        moveto 0,0;
        beginsel;
        golineend;
        endsel;
        insert str(#sec);
        gofileend;
    }
}
beep;
endmacro;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/9440/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/9440/</guid></item><item><title>ivoryworks's comment on バイナリクロック
</title><link>http://ja.doukaku.org/comment/9432/</link><description>



&lt;a href="http://ja.doukaku.org/275/"&gt;バイナリクロック&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/275/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/275/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  &lt;pre class='compact'&gt;秀丸マクロです。
0と1で表示するシンプルなバイナリクロックです。

&lt;/pre&gt;
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;$bin[0] = &amp;quot;&amp;quot;;
$bin[1] = &amp;quot;&amp;quot;;
$bin[2] = &amp;quot;&amp;quot;;
insert &amp;quot;\n\n\n&amp;quot;;

while (1) {
    #i = 0;
    while (#i &amp;lt; 3) {
        call GetBinTime #i;
        if ($bin[#i] != $$return) {
            $bin[#i] = $$return;
            moveto 0,#i;
            beginsel;
            golineend;
            endsel;
            insert $bin[#i];
            gofileend;
        }
        #i = #i+1;
    }
}
endmacro;

GetBinTime:
    refreshdatetime;
    if (##1 == 0) {
        call Dec2Bin val(hour);
    } else if (##1 == 1) {
        call Dec2Bin val(minute);
    } else {
        call Dec2Bin val(second);
    }
    while (strlen($$return) &amp;lt; 6) {
        $$return = &amp;quot; &amp;quot;+$$return;
    }
return $$return;

Dec2Bin:
    $$str = &amp;quot;&amp;quot;;
    if (##1!=0) {
    while (##1!=1) {
        $$str = str(##1%2)+$$str;
        ##1 = ##1/2;
    }
    $$str = &amp;quot;1&amp;quot;+$$str;
}
return $$str;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/9432/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/9432/</guid></item><item><title>ivoryworks's comment on ラングトンのアリの描画
</title><link>http://ja.doukaku.org/comment/9424/</link><description>



&lt;a href="http://ja.doukaku.org/276/"&gt;ラングトンのアリの描画&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/276/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/276/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  &lt;pre class='compact'&gt;秀丸マクロで。
セルを全角で表現しているので、かなり幅が広くなってしまいます。
&lt;/pre&gt;
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;#w = 100;
#dct = 0;
$sp = &amp;quot;　&amp;quot;;
$line = &amp;quot;&amp;quot;;

#i = 0;
while (#i &amp;lt; #w) {
    $line = $line+$sp;
    #i = #i + 1;
}
$line = $line+&amp;quot;\n&amp;quot;;

#i = 0;
while (#i &amp;lt; #w) {
    insert $line;
    #i = #i + 1;
}
movetolineno #w,#w/2;

#i = 0;
while (1) {
    $ant = gettext(x, y, x+2, y);
    if ($ant == $sp) {
        overwrite &amp;quot;○&amp;quot;;
        #dct = (#dct+1)%4;
    } else {
        overwrite $sp;
        #dct = (((#dct+1)%4)+2)%4;
    }
    left;
    if (#dct == 0) {
        up;
    } else if (#dct == 1) {
        right;
    } else if (#dct == 2) {
        down;
    } else if (#dct == 3) {
        left;
    }
    if ((x &amp;gt; #w*2-1)||(x == 0)||(y == 0)||(y &amp;gt; #w-1)) {
        endmacro;
    }
}
endmacro;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/9424/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/9424/</guid></item><item><title>k20k's comment on 道順を数える
</title><link>http://ja.doukaku.org/comment/8327/</link><description>



&lt;a href="http://ja.doukaku.org/221/"&gt;道順を数える&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/221/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/221/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  普通に数えてみました。&lt;br/&gt;再帰処理が使えないので、自前で階層処理(#hier関連)を実装しました。&lt;br/&gt;なので、処理がちょっと冗長に．．．
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;$goal=&amp;quot;Q&amp;quot;;
$pipe[0]=&amp;quot;-&amp;quot;;
$pipe[1]=&amp;quot;|&amp;quot;;
#route=1;
#hier=0;
#houkou=0;

    gofiletop;
    while( 1==1 ) {
        if( #houkou==0 || #houkou==1 ) {
            call rightdown #houkou;
            #ret=##return;
            if( #ret==1 ) {
                #rd[#hier]=#houkou;
                #pnt[#hier]=#pnt[#hier]+1;
                #hier=#hier+1;
                #houkou=0;
                continue;
            }
            #houkou=#houkou+1;
        } else {
            if( char(code)!=$goal ) {
                #route = #route+#pnt[#hier]-1;
            }
            #pnt[#hier]=0;
            #hier=#hier-1;
            #houkou=#rd[#hier]+1;
            if( #hier==-1 ) break;
            call gowhere #rd[#hier]+2;
            call gowhere #rd[#hier]+2;
            continue;
        }
    }
    message( str(#route) );
    endmacro;

rightdown:
    call gowhere ##1;
    if( char(code)==$pipe[##1] ) {
        call gowhere ##1;
        return 1;
    }
    call gowhere ##1+2;
    return 0;

gowhere:
    if( ##1==0 ) right;
    if( ##1==1 ) down;
    if( ##1==2 ) left;
    if( ##1==3 ) up;
    return;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/8327/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/8327/</guid></item><item><title>k20k's comment on 島の数をカウントする
</title><link>http://ja.doukaku.org/comment/8113/</link><description>



&lt;a href="http://ja.doukaku.org/219/"&gt;島の数をカウントする&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/219/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/219/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  &lt;pre class='compact'&gt;初投稿です。
変態的な実装ができないかと考えていたのですが、
最適化していくうちに#8104さんと似た考え方になってしまいました。
秀丸の新規窓の左上に島を書いて、マクロ実行です。

考え方は以下の通りです。
１．左上から右下に向かって横にスキャン
２．上と左の島連番取得
３．取得出来なければ新しい島＆島数プラス
４．上と左の島連番が一致しない場合、左の島連番を塗り直し＆島数マイナス
&lt;/pre&gt;
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;#xcharlen=2;
$wchar=&amp;quot;□&amp;quot;;
$bchar=&amp;quot;■&amp;quot;;

#xlen=4;
#ylen=4;

#wcnt=0;
#bcnt=0;
##x=0;
##y=0;
##serial=1;

    while( ##y &amp;lt; #ylen ) {
        ##x=0;
        while( ##x &amp;lt; #xlen ) {
            call GETCHAR ##x, ##y;
            $$c = $$return;
            if( ##y == 0 ) {
                ##no = ##serial;
            } else {
                call GETCHAR ##x, ##y-1;
                if( $$return == $$c ) {
                    ##no = #mtx[##y-1][##x];
                } else {
                    ##no = ##serial;
                }
            }
            if( ##x &amp;gt; 0 ) {
                call GETCHAR ##x-1, ##y;
                if( $$return == $$c ) {
                    if( ##no == ##serial ) {
                        ##no = #mtx[##y][##x-1];
                    } else if( ##no != #mtx[##y][##x-1] ) {
                        call RENUM ##no, #mtx[##y][##x-1], ##y, $$c;
                    }
                }
            }
            #mtx[##y][##x] = ##no;
            if( ##no == ##serial ) {
                call CNTISLAND $$c, 1;
                ##serial = ##serial+1;
            }
            ##x = ##x+1;
        }
        ##y = ##y+1;
    }

    message &amp;quot;白の島は&amp;quot; + str(#wcnt) + &amp;quot;つ\n&amp;quot; + &amp;quot;黒の島は&amp;quot; + str(#bcnt) + &amp;quot;つ&amp;quot;;

    endmacro;

RENUM:
    ##i=0;
    while( ##i &amp;lt; ##3+1 ) {
        ##j=0;
        while( ##j &amp;lt; #xlen ) {
            if( #mtx[##i][##j]==##2 ) {
                #mtx[##i][##j]=##1;
            }
            ##j=##j+1;
        }
        ##i=##i+1;
    }

    call CNTISLAND $$4, -1;

    return;

CNTISLAND:
    if( $$1 == $wchar ) {
        #wcnt=#wcnt+##2;
    } else {
        #bcnt=#bcnt+##2;
    }

    return;

GETCHAR:
    ##x1 = ##1 * #xcharlen;
    ##x2 = ##x1 + #xcharlen;
    $$res=gettext(##x1, ##2, ##x2, ##2, 0);

    return $$res;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/8113/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/8113/</guid></item><item><title>fujidig's comment on BFコンパイラー
</title><link>http://ja.doukaku.org/comment/5116/</link><description>



&lt;a href="http://ja.doukaku.org/80/"&gt;BFコンパイラー&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/80/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/80/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  一番手間がかかったのはgetcharの実装です。
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;begingroupundo;
gofiletop;
$code[&amp;#39;&amp;gt;&amp;#39;] = &amp;quot;#ptr=#ptr+1;&amp;quot;;
$code[&amp;#39;&amp;lt;&amp;#39;] = &amp;quot;#ptr=#ptr-1;&amp;quot;;
$code[&amp;#39;+&amp;#39;] = &amp;quot;#buf[#ptr]=#buf[#ptr]+1;&amp;quot;;
$code[&amp;#39;-&amp;#39;] = &amp;quot;#buf[#ptr]=#buf[#ptr]-1;&amp;quot;;
$code[&amp;#39;.&amp;#39;] = &amp;quot;insert char(#buf[#ptr]);&amp;quot;;
$code[&amp;#39;,&amp;#39;] = &amp;quot;call get;&amp;quot;;
$code[&amp;#39;[&amp;#39;] = &amp;quot;while(#buf[#ptr]){&amp;quot;;
$code[&amp;#39;]&amp;#39;] = &amp;quot;}&amp;quot;;
#isUsedGetchar = false;
while( code != eof ) {
    if( code == &amp;#39;,&amp;#39; ) #isUsedGetchar = true;
    insert $code[code];
    delete;
}
if( #isUsedGetchar ) {
    insert &amp;quot;endmacro;get:if($get==\&amp;quot;\&amp;quot;&amp;amp;&amp;amp;#c&amp;lt;=0)$get=input(\&amp;quot;入力\&amp;quot;);#c=ascii($get);if($get==\&amp;quot;\&amp;quot;)#c=-1;$get=rightstr($get,strlen($get)-strlen(char(#c)));#buf[#ptr]=#c;return;&amp;quot;;
}
endgroupundo;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/5116/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/5116/</guid></item><item><title>fujidig's comment on ビンゴの結果を整形表示
</title><link>http://ja.doukaku.org/comment/4368/</link><description>



&lt;a href="http://ja.doukaku.org/47/"&gt;ビンゴの結果を整形表示&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/47/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/47/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;    call srand tickcount;
    call bingo 35;
    endmacro;

bingo:
    ##i = 0;
    while( ##i &amp;lt; ##1 ) {
        ##dest[##i] = ##i + 1;
        ##i = ##i + 1;
    }
    ##i = 0;
    while( ##i &amp;lt; ##1 ) {
        call rand;
        ##r = ##return % ( ##1 - ##i ) + ##i;
        ##tmp = ##dest[##r];
        ##dest[##r] = ##dest[##i];
        ##dest[##i] = ##tmp;
        ##i = ##i + 1;
    }
    ##keta = strlen( str( ##1 ) );
    ##i = 0;
    while( ##i &amp;lt; ##1 ) {
        ##next = ##i + 10;
        if ( ##next &amp;gt; ##1 ) {
            ##next = ##1;
        }
        ##ii = ##i;
        while( ##ii &amp;lt; ##next ) {
            if ( ##ii &amp;gt; ##i ) {
                insert &amp;quot; &amp;quot;;
            }
            call KetaSoroe ##ii+1, ##keta;
            insert $$return;
            ##ii = ##ii + 1;
        }
        insert &amp;quot;\n&amp;quot;;
        ##ii = ##i;
        while( ##ii &amp;lt; ##next ) {
            if ( ##ii &amp;gt; ##i ) {
                insert &amp;quot; &amp;quot;;
            }
            call KetaSoroe ##dest[##ii], ##keta;
            insert $$return;
            ##ii = ##ii + 1;
        }
        insert &amp;quot;\n\n&amp;quot;;
        ##i = ##next;
    }
    return;

KetaSoroe:
    ##i = ##2 - strlen( str( ##1 ) );
    $$result = &amp;quot;&amp;quot;;
    if ( ##i &amp;gt;= 0 ) {
        while( ##i &amp;gt; 0 ) {
            $$result = $$result + &amp;quot; &amp;quot;;
            ##i = ##i - 1;
        }
    }
    $$result = $$result + str( ##1 );
    return $$result;

rand:
    #rand_x = #rand_x * 214013 + 2531011;
    if ( #rand_x &amp;lt; 0 ) {
        return ( ( #rand_x + 1 ) / 65536 - 1 ) &amp;amp; 32767;
    }
    return #rand_x / 65536 &amp;amp; 32767;

srand:
    #rand_x = ##1;
    return;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/4368/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/4368/</guid></item><item><title>fujidig's comment on 重複無し乱数
</title><link>http://ja.doukaku.org/comment/4290/</link><description>



&lt;a href="http://ja.doukaku.org/46/"&gt;重複無し乱数&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/46/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/46/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  
&lt;p&gt;乱数を発生させる関数がなかったのでそこから実装。
&lt;/p&gt;
&lt;p&gt;HSP ( &lt;a href="http://ja.doukaku.org/comment/4289/"&gt;#4289&lt;/a&gt; ) と同じ結果になるように Visual C++ の rand と同じアルゴリズム・定数を使いました。
   &lt;a href="http://ja.doukaku.org/comment/4289/"&gt;#4289&lt;/a&gt; と乱数の種を同じにしたら同じ結果になるでしょう。
   （ HSP の randomize の引数、秀丸マクロの srand サブルーチンの引数 ）
&lt;/p&gt;



&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;    call srand tickcount;
    call bingo 10;
    call bingo 3;
    call bingo 3;
    call bingo 10;
    endmacro;

bingo:
    ##i = 0;
    while( ##i &amp;lt; ##1 ) {
        ##dest[##i] = ##i + 1;
        ##i = ##i + 1;
    }
    ##i = 0;
    while( ##i &amp;lt; ##1 ) {
        call rand;
        ##r = ##return % ( ##1 - ##i ) + ##i;
        ##tmp = ##dest[##r];
        ##dest[##r] = ##dest[##i];
        ##dest[##i] = ##tmp;
        ##i = ##i + 1;
    }
    ##i = 0;
    while( ##i &amp;lt; ##1 ) {
        if ( ##i &amp;gt; 0 ) {
            insert &amp;quot; &amp;quot;;
        }
        insert str( ##dest[##i] );
        ##i = ##i + 1;
    }
    insert &amp;quot;\n&amp;quot;;
    return;

rand:
    #rand_x = #rand_x * 214013 + 2531011;
    if ( #rand_x &amp;lt; 0 ) {
        return ( ( #rand_x + 1 ) / 65536 - 1 ) &amp;amp; 32767;
    }
    return #rand_x / 65536 &amp;amp; 32767;

srand:
    #rand_x = ##1;
    return;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/4290/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/4290/</guid></item><item><title>fujidig's comment on 文字列のセンタリング
</title><link>http://ja.doukaku.org/comment/4273/</link><description>



&lt;a href="http://ja.doukaku.org/87/"&gt;文字列のセンタリング&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/87/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/87/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;    if ( getconfig( &amp;quot;AutoAdjustOrikaeshi&amp;quot; ) == 2 ) {
        #width = windowwidth;
    } else {
        #width = getconfig( &amp;quot;Orikaeshi&amp;quot; );
    }
    disabledraw;
    begingroupundo;
    if ( !selecting ) {
        selectall;
    }
    #i = seltoplineno;
    #end = selendlineno;
    escape;
    while( #i &amp;lt;= #end ) {
        movetolineno 1, #i;
        #margin = #width - linelen2;
        if ( #margin &amp;gt;= 0 ) {
            #j = #margin / 2;
            while( #j &amp;gt; 0 ) {
                insert &amp;quot; &amp;quot;;
                #j = #j - 1;
            }
        } else {
            while( linelen2 &amp;gt; #width ) {
                golineend2;
                backspace;
                if ( !linelen2 &amp;gt; #width ) {
                    break;
                }
                golinetop2
                delete;
            }
        }
        #i = #i + 1;
    }
    endgroupundo;
    enabledraw;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/4273/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/4273/</guid></item><item><title>fujidig's comment on 文字列のセンタリング
</title><link>http://ja.doukaku.org/comment/4248/</link><description>



&lt;a href="http://ja.doukaku.org/87/"&gt;文字列のセンタリング&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/87/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/87/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;    begingroupundo;
    if ( getconfig( &amp;quot;AutoAdjustOrikaeshi&amp;quot; ) == 2 ) {
        #width = windowwidth;
    } else {
        #width = getconfig( &amp;quot;Orikaeshi&amp;quot; );
    }
    if ( !selecting ) {
        #top = 1;
        #end = linecount2;
    } else {
        #top = seltoplineno;
        #end = selendlineno;
        escape;
    }
    #i = #top;
    while( #i &amp;lt;= #end ) {
        movetolineno 1, #i;
        #margin = #width - linelen2;
        if ( #margin &amp;gt;= 0 ) {
            #j = #margin / 2;
            $margin = &amp;quot;&amp;quot;;
            while( #j &amp;gt; 0 ) {
                $margin = $margin + &amp;quot; &amp;quot;;
                #j = #j - 1;
            }
            insert $margin;
        } else {
            beginsel;
            movetolineno linelen2 + 1, #i;
            $text = gettext( seltopx, seltopy, selendx, selendy, 1 );
            delete;
            call cutstr, $text, #width;
            insert $$return;
        }
        #i = #i + 1;
    }
    endgroupundo;
    endmacro;

cutstr:
    $$src = $$1;
    ##width = ##2;
    if ( ##width &amp;lt; 0 ) {
        ##width = 0;
    }
    if ( ##width &amp;gt; strlen( $$src ) ) {
        ##width = strlen( $$src );
    }
    ##start = strlen( $$src ) - ##width;
    ##end = strlen( $$src ) + ##width;
    ##i = 0;
    $$dest = &amp;quot;&amp;quot;;
    $$left = &amp;quot;&amp;quot;;
    $$right = &amp;quot;&amp;quot;;
    while( ##i * 2 &amp;lt; ##end ) {
        ##char = ascii( $$src );
        ##bytes = strlen( char( ##char ) );
        if ( ##i * 2 &amp;lt; ##start ) {
            $$left = char( ##char );
        }
        if ( ( ( ##i + ##bytes ) * 2 &amp;gt; ##end ) &amp;amp;&amp;amp; ( $$right == &amp;quot;&amp;quot; ) ) {
            $$right = char( ##char );
        }
        if ( ( ##i * 2 &amp;gt;= ##start ) &amp;amp;&amp;amp; ( ( ##i + ##bytes ) * 2 &amp;lt;= ##end ) ) {
            $$dest = $$dest + char( ##char );
        }
        $$src = rightstr( $$src, strlen( $$src ) - ##bytes );
        ##i = ##i + ##bytes;
    }
    if ( $$right == &amp;quot;&amp;quot; ) {
        $$right = char( ascii( $$src ) );
    }
    if ( strlen( $$dest ) &amp;gt;= ##width ) {
        return $$dest;
    }
    if ( ( strlen( $$left + $$dest ) &amp;lt;= ##width ) &amp;amp;&amp;amp; ( $$left != &amp;quot;&amp;quot; ) ) {
        return $$left + $$dest;
    }
    if ( ( strlen( $$dest + $$right ) &amp;lt;= ##width ) &amp;amp;&amp;amp; ( $$right != &amp;quot;&amp;quot; ) ) {
        return $$dest + $$right;
    }
    return $$dest;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/4248/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/4248/</guid></item><item><title>fujidig's comment on 文字列のセンタリング
</title><link>http://ja.doukaku.org/comment/4152/</link><description>



&lt;a href="http://ja.doukaku.org/87/"&gt;文字列のセンタリング&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/87/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/87/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  文字列として取得して整形。
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt;  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;    begingroupundo;
    if ( getconfig( &amp;quot;AutoAdjustOrikaeshi&amp;quot; ) == 2 ) {
        #width = windowwidth;
    } else {
        #width = getconfig( &amp;quot;Orikaeshi&amp;quot; );
    }
    if ( !selecting ) {
        selectall;
    } else {
        #l1 = seltoplineno;
        #l2 = selendlineno;
        movetolineno 1, #l1;
        beginsel;
        movetolineno 1, #l2;
        movetolineno linelen2 + 1, #l2;
        endsel;
    }
    $text = gettext( seltopx, seltopy, selendx, selendy, 1 );
    delete;
    call center $text, #width;
    insert $$return;
    endgroupundo;
    endmacro;

center:
    $$result = &amp;quot;&amp;quot;;
    while( $$1 != &amp;quot;&amp;quot; ) {
        ##lineLen = strstr( $$1, &amp;quot;\x0d\x0a&amp;quot; );
        ##isLastLine = ##lineLen == -1;
        if ( ##isLastLine ) {
            ##lineLen = strlen( $$1 );
        }
        $$line = leftstr( $$1, ##lineLen );
        call center_line $$line, ##2;
        $$result = $$result + $$return;
        $$1 = rightstr( $$1, strlen( $$1 ) - ##lineLen );
        if ( !##isLastLine ) {
            $$1 = rightstr( $$1, strlen( $$1 ) - strlen( &amp;quot;\x0d\x0a&amp;quot; ) );
            $$result = $$result + &amp;quot;\n&amp;quot;;
        }
    }
    return $$result;

center_line:
    ##margin = ##2 - strlen( $$1 );
    if ( ##margin &amp;gt;= 0 ) {
        $$result = &amp;quot;&amp;quot;;
        ##i = ##margin / 2;
        while( ##i &amp;gt; 0 ) {
            $$result = $$result + &amp;quot; &amp;quot;;
            ##i = ##i - 1;
        }
        $$result = $$result + $$1;
    } else {
        ##idx = -##margin / 2;
        call midstr2, $$1, ##idx, ##2;
        $$result = $$return;
        // ±1バイトとる範囲をずらして、その中から一番長いテキストをとる
        if ( strlen( $$result ) &amp;lt; ##2 ) {
            call midstr2, $$1, ##idx + 1, ##2;
            if ( strlen( $$return ) &amp;gt; strlen( $$result ) ) {
                $$result = $$return;
            }
            if ( strlen( $$result ) &amp;lt; ##2 ) {
                call midstr2, $$1, ##idx - 1, ##2;
                if ( strlen( $$return ) &amp;gt; strlen( $$result ) ) {
                    $$result = $$return;
                }
            }
        }
    }
    return $$result;

midstr2: // マルチバイトを考慮した midstr
    $$src = $$1;
    ##idx = ##2;
    ##len = ##3;
    if ( ##idx &amp;lt; 0 ) {
        ##idx = 0;
    }
    if ( ##idx &amp;gt; strlen( $$src ) ) {
        ##idx = strlen( $$src );
    }
    if ( ##len &amp;lt; 0 ) {
        ##len = 0;
    }
    if ( ##len &amp;gt; strlen( $$src ) - ##idx ) {
        ##len = strlen( $$src ) - ##idx ;
    }
    
    ##end = ##idx + ##len;
    ##i = 0;
    $$dest = &amp;quot;&amp;quot;;
    while( ##i &amp;lt; ##end ) {
        ##char = ascii( rightstr( $$src, strlen( $$src ) - ##i ) );
        ##byte = strlen( char( ##char ) );
        if ( ( ##i &amp;gt;= ##idx ) &amp;amp;&amp;amp; ( ##i + ##byte &amp;lt;= ##end ) ) {
            $$dest = $$dest + char( ##char );
        }
        ##i = ##i + ##byte;
    }
    return $$dest;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/4152/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/4152/</guid></item><item><title>fujidig's comment on 税込み価格への修正
</title><link>http://ja.doukaku.org/comment/4112/</link><description>



&lt;a href="http://ja.doukaku.org/6/"&gt;税込み価格への修正&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/6/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/6/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  searchdown2 で。
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;    disabledraw;
    begingroupundo;
    gofiletop;
    while( true ) {
        searchdown2 &amp;quot;[0-9]&amp;quot;, regular;
        if( !result ) {
            break;
        }
        #figX = x;
        #figY = y;
        searchdown &amp;quot;[^0-9]&amp;quot;, regular;
        if( !result ) {
            gofileend;
        }
        #figure = val( gettext( #figX, #figY, x, y ) );
        beginsel;
        moveto #figX, #figY;
        insert str( #figure * 105 / 100 );
    }
    endgroupundo;
    enabledraw;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/4112/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/4112/</guid></item><item><title>fujidig's comment on /*コメント*/を取り除く
</title><link>http://ja.doukaku.org/comment/4108/</link><description>



&lt;a href="http://ja.doukaku.org/17/"&gt;/*コメント*/を取り除く&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/17/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/17/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  searchdown2 を使えばもっと簡潔にできましたね。
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;    disabledraw;
    begingroupundo;
    gofiletop;
    while( true ) {
        searchdown2 &amp;quot;/*&amp;quot;;
        if ( !result ) {
            break;
        }
        #commentStartX = x;
        #commentStartY = y;
        movetolineno column + 1 + strlen( &amp;quot;/*&amp;quot; ), lineno;
        searchdown2 &amp;quot;*/&amp;quot;;
        if( !result ) {
            gofileend;
        }
        movetolineno column + 1 + strlen( &amp;quot;*/&amp;quot; ), lineno;
        beginsel;
        moveto #commentStartX, #commentStartY;
        delete;
    }
    endgroupundo;
    enabledraw;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/4108/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/4108/</guid></item><item><title>fujidig's comment on 文字列からの情報抽出
</title><link>http://ja.doukaku.org/comment/4106/</link><description>



&lt;a href="http://ja.doukaku.org/51/"&gt;文字列からの情報抽出&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/51/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/51/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;    $output = &amp;quot;&amp;quot;;
    disabledraw;
    gofiletop;
    while( true ) {
        searchdown2 &amp;quot;[A-Za-z]+(-hidden)?(-(small|big))?\\.[A-Za-z]+&amp;quot;, regular;
        if ( !result ) {
            break;
        }
        #x = x;
        #y = y;
        searchdown &amp;quot;[-.]&amp;quot;, regular;
        $name = gettext( #x, #y, x, y );
        $size = &amp;quot;normal&amp;quot;;
        $hidden = &amp;quot;False&amp;quot;;
        while( code == &amp;#39;-&amp;#39; ) {
            movetolineno column + 1 + strlen( &amp;quot;-&amp;quot; ), lineno;
            #x = x;
            #y = y;
            searchdown &amp;quot;[-.]&amp;quot;, regular;
            $option = gettext( #x, #y, x, y );
            if ( $option == &amp;quot;big&amp;quot; ) {
                $size = &amp;quot;big&amp;quot;;
            }
            if ( $option == &amp;quot;small&amp;quot; ) {
                $size = &amp;quot;small&amp;quot;;
            }
            if ( $option == &amp;quot;hidden&amp;quot; ) {
                $hidden = &amp;quot;True&amp;quot;;
            }
        }
        movetolineno column + 1 + strlen( &amp;quot;.&amp;quot; ), lineno;
        #x = x;
        #y = y;
        searchdown &amp;quot;[^A-Za-z]&amp;quot;, regular;
        if ( !result ) {
            gofileend;
        }
        $ext = gettext( #x, #y, x, y );
        $output = $output + &amp;quot;name:&amp;#39;&amp;quot; + $name + &amp;quot;&amp;#39;, ext:&amp;#39;&amp;quot; + $ext+&amp;quot;&amp;#39;, size: &amp;quot; + $size+&amp;quot; hidden: &amp;quot; + $hidden + &amp;quot;\n&amp;quot;;
    }
    enabledraw;
    newfile;
    insert $output;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/4106/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/4106/</guid></item><item><title>fujidig's comment on /*コメント*/を取り除く
</title><link>http://ja.doukaku.org/comment/4055/</link><description>



&lt;a href="http://ja.doukaku.org/17/"&gt;/*コメント*/を取り除く&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/17/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/17/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  開いている文書から取り除く。
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;    disabledraw;
    begingroupundo;
    gofiletop;
    while( true ) {
        if ( gettext2( column, lineno, column + strlen( &amp;quot;/*&amp;quot; ), lineno ) != &amp;quot;/*&amp;quot; ) {
            searchdown &amp;quot;/*&amp;quot;;
            if ( !result ) {
                break;
            }
        }
        #commentStartX = x;
        #commentStartY = y;
        movetolineno column + 1 + strlen( &amp;quot;/*&amp;quot; ), lineno;
        if ( gettext2( column, lineno, column + strlen( &amp;quot;*/&amp;quot; ), lineno ) != &amp;quot;*/&amp;quot; ) {
            searchdown &amp;quot;*/&amp;quot;;
            if( !result ) {
                gofileend;
            }
        }
        movetolineno column + 1 + strlen( &amp;quot;*/&amp;quot; ), lineno;
        #commentEndX = x;
        #commentEndY = y;
        beginsel;
        moveto #commentStartX, #commentStartY;
        delete;
    }
    endgroupundo;
    enabledraw;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/4055/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/4055/</guid></item><item><title>fujidig's comment on 税込み価格への修正
</title><link>http://ja.doukaku.org/comment/4023/</link><description>



&lt;a href="http://ja.doukaku.org/6/"&gt;税込み価格への修正&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/6/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/6/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  開いている文書から変換。&lt;br/&gt;「与えられた文字列の中から見つけ出し、変更した文字列を返す関数を作る」には沿っていませんが、この方が秀丸マクロらしいと思います。
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;    disabledraw;
    begingroupundo;
    gofiletop;
    while( true ) {
        if ( code &amp;lt; &amp;#39;0&amp;#39; || code &amp;gt; &amp;#39;9&amp;#39; ) {
            searchdown &amp;quot;[0-9]&amp;quot;, regular;
            if( !result ) {
                break;
            }
        }
        #figX = x;
        #figY = y;
        searchdown &amp;quot;[^0-9]&amp;quot;, regular;
        if( !result ) {
            gofileend;
        }
        #figure = val( gettext( #figX, #figY, x, y ) );
        beginsel;
        moveto #figX, #figY;
        delete;
        insert str( #figure * 105 / 100 );
    }
    endgroupundo;
    enabledraw;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/4023/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/4023/</guid></item><item><title>fujidig's comment on 税込み価格への修正
</title><link>http://ja.doukaku.org/comment/4021/</link><description>



&lt;a href="http://ja.doukaku.org/6/"&gt;税込み価格への修正&lt;/a&gt;
(&lt;a href="http://ja.doukaku.org/6/nested/"&gt;Nested&lt;/a&gt; 
 &lt;a href="http://ja.doukaku.org/6/flatten/"&gt;Flatten&lt;/a&gt;)


&lt;hr&gt;
  
&lt;hr&gt;
  
    &lt;table&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;    call IncludeTax &amp;quot;ダイコン150円、ハクサイ120円、ジャガイモ30円&amp;quot;;
    message $$return;
    endmacro;

IncludeTax:
    $$figure = &amp;quot;&amp;quot;;
    $$result = &amp;quot;&amp;quot;;
    while( $$1 != &amp;quot;&amp;quot; ) {
        ##char = ascii( $$1 );
        if ( ##char &amp;gt;= &amp;#39;0&amp;#39; &amp;amp;&amp;amp; ##char &amp;lt;= &amp;#39;9&amp;#39; ) {
            $$figure = $$figure + char( ##char );
        } else {
            if ( $$figure != &amp;quot;&amp;quot; ) {
                $$result = $$result + str( val( $$figure ) * 105 / 100 );
                $$figure = &amp;quot;&amp;quot;;
            }
            $$result = $$result + char( ##char );
        }
        
        $$1 = rightstr( $$1, strlen( $$1 ) - strlen( char( ##char ) ) );
    }
    if ( $$figure != &amp;quot;&amp;quot; ) {
        $$result = $$result + str( val( $$figure ) * 105 / 100 );
        $$figure = &amp;quot;&amp;quot;;
    }
    return $$result;
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    &lt;div align = "right" style="margin-right: 1em;"&gt;
      [&lt;a href="http://ja.doukaku.org/lang/hidemaru_macro/"&gt;
      秀丸マクロ
      &lt;/a&gt;]
      [&lt;a href="http://ja.doukaku.org/comment/4021/download/"&gt;
      download code
      &lt;/a&gt;]
      &lt;/a&gt;]
    &lt;/div&gt;
    &lt;hr&gt;
  

</description><guid>http://ja.doukaku.org/comment/4021/</guid></item></channel></rss>