>出力文字数で235文字まで見たいです。
を信用して「0」を235個並べたこんな構文を書いてみました。
*^C^C$M=$(nth,0,0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)^M
総文字数254文字。
はい。理系の人が好きな数値[256](の近似)になっちゃいますね。
余談はさておき、
マクロの制限文字数がマクロ自体の文字数ではなく、代入後の文字数であると考えられる別の要因を書きます。
上のchibi-tomさんのマクロでもやってますが、
長いマクロをnthで段落分けすると、どうして文字数制限(マクロ全体の総文字数)以上の物ができるのか。
それが、「代入した後の文字数でカウント」だからだと思っています。
*^C^C$M=setenv;to;0;$(nth,$(getenv,to),〇〇〇setenv;to;1,,,,)
$(nth,$(getenv,to),,×××setenv;to;2,,,)
$(nth,$(getenv,to),,,▽▽▽setenv;to;3,,)
$(nth,$(getenv,to),,,,◇◇◇setenv;to;4,)
$(nth,$(getenv,to),,,,,☆☆☆setenv;to;0)^M
これで考えます。
先頭に「*」が有るとややこしくなるので、消します。
^C^C$M=setenv;to;0;$(nth,$(getenv,to),〇〇〇setenv;to;1,,,,)
$(nth,$(getenv,to),,×××setenv;to;2,,,)
$(nth,$(getenv,to),,,▽▽▽setenv;to;3,,)
$(nth,$(getenv,to),,,,◇◇◇setenv;to;4,)
$(nth,$(getenv,to),,,,,☆☆☆setenv;to;0)^M
to=0の時、それを代入すると
^C^C$M=setenv;to;0;$(nth,0,〇〇〇setenv;to;1,,,,)$(nth,0,,,,,)$(nth,0,,,,,)$(nth,0,,,,,)$(nth,0,,,,,)^M
なんです。(2~5行目の中身は無い物となるんです。)
同じく、to=3の時は
^C^C$M=setenv;to;0;$(nth,3,,,,,)$(nth,3,,,,,)$(nth,3,,,,,)$(nth,3,,,,◇◇◇setenv;to;4,)$(nth3,,,,,,)^M
つまり、nthで段落分けして、文字数制限値が増えたんじゃない。
代入した時に、他の段落の中身を切り落としてるから、マクロ全体で見ても256文字を超えていない。
こんな感じで判るかな?
- Lon
- 2021/12/10 (Fri) 11:32:06