|
彗星さん今日は、Iranoan です。
> ・指定した範囲、あるいは全文で
> ・全角で何文字なのかカウントしたい
> ・半角の文字が混じっている場合は、「2文字で全角1文字」とカウントする
> ・半角の文字が奇数の場合は、切り上げて(半角3文字なら全角2文字分)カウントする
>
> こんな条件にあうマクロはないでしょうか?
あるかどうかは解りませんが、作ることは可能でしょう。ただ細かい仕様
(希望動作) は、使う人でないと解りませんからね〜。ここでの仕様とは、
・半角の 2 文字で全角 1 文字は、
o 連続しているときだけ
o 全体か
のどちらなのか?
・句読点、括弧などはどの様に扱うのか?
等です。改行と全半角の空白だけをカウント対象としないマクロのサンプルは
次のようになります。重要なのは、2 つ目のブロック (第 2 段落) だけで、
後は初期状態に戻すための処理です。
//--------------------------------------------------------------------
disabledraw;
#x = x;
#y = y;
$s = searchbuffer;
#s = searchoption;
$h = foundbuffer;
#h = foundoption;
#f = foundhilighting;
if( !selecting )selectall;
moveto seltopx, seltopy;
searchdown2 "[!-(I_、-K]+", regular, inselect;
while( result ){
$str = gettext( foundtopx, foundtopy, foundendx, foundendy, 1 );
#num = #num + strlen( $str );
moveto foundendx, foundendy;
finddown2;
}
setreplace $r;
setsearch $h, #h;
hilightfound #f;
setsearch $s, #s;
escapeinselect;
enabledraw;
moveto #x, #y;
message str( ( #num + #num % 2 ) / 2 ) + "文字です";
|
|