exp777.hatenablog.com

頭の中はゲームでいっぱい

PerlでクリップボードのShift_JIS全角文字を数える

昨日はてなグラフのネタがないと書いたが、いいネタを見つけた。この日記の文字数。
自分で数えるのは絶対やりたくないので、文字列を数えるプログラムを書く。
文字列といったらPerlだという連想で、ほとんど使ったことがないPerlで書くことに。
検索してみたら、全角文字入り文字列を数えるのはPerlでもそう簡単なことではないようだ。でも全角文字を数えたい人はたくさんいるみたいで、答えとなるページはすぐに見つかった。
Perl 全角文字を含んだ文字列を数える - S.N.Y.C.
文字列の入力は、クリップボードから直接できれば便利だと思ったのでそれも検索。またすぐ見つかる。Googleありがとう。
クリップボードを利用する
というわけでたいしたバグもなく完成。そりゃほとんど上記ページのソースのコピーだからな。役に立つページを作ってくれてありがとう。ただカウントしない文字を削除するところだけ自分で書いた。

#改行、タブ、半角スペース、全角スペース、見出しの■、時刻を先に削除
$text =~ s/\s| |■|\d\d:\d\d//g;

全角文字をカウント&削除する前にこれで空白文字などを消しておく。カテゴリー表示は消すか消さないか迷ったけど、消さないことにした。
早速昨日の分をカウントさせてみたら、1141文字だった。fotolifeの画像をコピーすると

f:id:exp777:20070504220716p:image:small

みたいに画像の番号がコピーされるようだ。これはかなり文字列を稼いでいるな。カウントしないこともできるけど、絵を描く労力を考えたらカウントされるのもアリかな。
graph:id:exp777:Diary文字数 5月
5月分をExcelで入力した後アップロード。4月分もカウントするかしまいか・・・