実文字数カウントマクロ(for 秀丸) -ver1.0- ― 2006年06月03日 23時18分43秒
//hicc.mac:実文字数カウントマクロ(for 秀丸) //半角・全角スペース、タブ、改行を除いた文字数をカウント //Ver1.0 2006/06/03 Kurebi disabledraw; ##x = x; ##y = y; ##b = 0; ##c = 0; gofiletop; while (code != eof) { if (code == ' ' || code == ' ' || code == '\t' || code == 0x0d) { } else { if (code <= 0xff) ##b = ##b + 1; else ##b = ##b + 2; ##c = ##c + 1; } right; } message(str(##b) + "バイト (" + str(##c) + "文字)"); moveto ##x,##y; enabledraw;秀丸で動作する実文字数カウント用マクロです。
- 点線の中身を適当なファイル名(例:hicc.mac)でhidemaru.exeと同じフォルダに保存します。
- 秀丸でマクロ登録してください。(適当なキーに割り付けると操作性が向上します。ちなみにマクロ1から10まではCTRL+1から0に自動的に割り付きます)
- カウントしたいテキストを表示してマクロを実行すると、実文字のバイト数と文字数が表示されます。
- 表示されるバイト数は実文字の総バイト数(半角1バイト、全角2バイト)で、文字数は半角・全角を問わない全文字数です。
- 動作確認はWindows XP Home Edition+秀丸 Ver5.18で行いました。
コメント
_ nippon ― 2007年03月08日 19時11分23秒
_ くれび ― 2007年03月12日 13時43分33秒
nipponさん、はじめまして。
コメント遅くなって申し訳ありません。
わざわざご連絡いただいてありがとうございます。
マクロはもちろんご自由に利用・改変していただいてかまいません。
ところでこのコメントは非公開でとのことですが、管理上面倒なので(^^;)問題なければこのままでもかまいませんか? もしどうしても非公開でということであればお手数ですがもう一度コメントください。
コメント遅くなって申し訳ありません。
わざわざご連絡いただいてありがとうございます。
マクロはもちろんご自由に利用・改変していただいてかまいません。
ところでこのコメントは非公開でとのことですが、管理上面倒なので(^^;)問題なければこのままでもかまいませんか? もしどうしても非公開でということであればお手数ですがもう一度コメントください。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
今日、<hicc.mac> をコピーさせていただいて、さっそく hidemaru のフォルダに入れました。
ただ、少しだけ手を入れさせていただきました (勿論、使用は私個人に限ります)。
というのが、私は 「さるさる日記」 というサイトで日記を書いているのですが、一区切りが 1,000 文字までという決まりがあって、私は一日分としては、その文字数以内のテキストのみに限定しています。
で、ちょっとキザですが、私の書くもので、中にアルファベットを入れることが多くて、たとえば 「あa」 だと、1.5 とカウントされます。改行も半角で改行すれば 0.5、それが全角だったら 1 と、なかなかシビアです。
そういうカウントをしてくれるものはないかと調べましたが、そんな都合のいいものは、見つけられませんでした。
そして、<hicc.mac> が一番私の要望に近いものだと判断しました (幸いに、昔 Hidemaru のライセンスを買っていて、一応はユーザーですから)。
ただ、上に述べましたようなわけで、少しだけ hicc.mac に手を加えました。といっても、マクロもヘクロも分らない素人なものですから、完全なものではありません。大体、こういうのが欲しいというのに近いかな、というものであろうかと思ってはいますけれども。
ものすごく長文のコメントで心配になりましたが、出来れば非公開ということでお願いできればと思います。
勝手に手を加えて使おうというので、どういう形になったかをお知らせした方がいいかなと思いまして . . .
手を加えた辺りを以下に貼り付けます
while (code != eof) {
if (code == ' ' ||
code == ' ' ||
code == '\t' ||
code == 0x0d) {
##b = ##b + 1;
}
else {
if (code <= 0xff)
##b = ##b + 1;
else
##b = ##b + 2;
##c = ##c + 1;
}
right;
}
message(str(##b / 2) + "文字");
以上です。どうも貴重なお時間を使わせて恐縮です。ありがとうございました。