文字数をカウントするには?No.07526
いいじま さん 15/03/03 23:09
 
いいじまです。

初歩的な話ですが…
選択範囲の「文字数・バイト数」をカウントするにはどうするのが
簡単なんでしょうか?

「文字数・バイト数」の定義は、次のいずれかを実行時に選択です。
  1.どの文字も1文字を1と数える。(UTF-32)
  2.サロゲートペアの文字は2と数え、BMPの文字は1と数える。(UTF-16)
  3.画面のエンコーディングにかかわらず、Shift_JIS、EUC、UTF-8での
   バイト数を数える。
  4.改行は1または2と数える。どちらにするのかは実行時に選択。

そもそもこの計数をする動機は、ツイッターの文字数制限や2ちゃんねるの
バイト数制限、レポート類の字数制限をクリアできるかどうかの確認なので、
速度はそれほど必要ありません。10kB程度までを実用的な速度でカウント
したいと考えています。

…単純に先頭からシーケンシャルに見ていくのが、副作用がなくて
確実でしょうか?(これだと全部の数値を一気にカウントできますし。)

[ ]
RE:07526 文字数をカウントするには?No.07527
秀丸担当 さん 15/03/04 09:02
 

簡単に文字数を数える機能としては、「文字数計算」コマンドがあります。
キー割り当てで「その他」系のコマンドとしてあります。
全角、半角、改行などでそれぞれ数え方を指定できます。
マクロで行うには、charcount関数があります。
ステータスバーに「全体の文字数」または「範囲選択の文字数」を表示しておく
と、ツイッター用に書きながら数えるのには便利です。

ただ「文字数計算」は、全角や半角という文字の幅を基準にしているので、エン
コードされたときの正確なバイト数とはちょっと違います。
サロゲートペアのときに2と数える指定も無いです。
正確なバイト数を得るとして、一文字ずつ計算するなどの面倒なことはせず簡単
にやるとしたら、内容を一時的に作業用のファイルとして保存し、そのファイル
のサイズを見ると簡単だと思います。
ファイルサイズを得るには、本来の目的とは違うのですがV8.40以降では
existfile関数でファイルサイズも得ることができます。

[ ]
RE:07527 文字数をカウントするには?No.07528
いいじま さん 15/03/04 14:14
 
いいじまです。

秀丸担当さま、ありがとうございます。

> 簡単に文字数を数える機能としては、「文字数計算」コマンドがあります。
> キー割り当てで「その他」系のコマンドとしてあります。
> 全角、半角、改行などでそれぞれ数え方を指定できます。
> マクロで行うには、charcount関数があります。
> ステータスバーに「全体の文字数」または「範囲選択の文字数」を表示しておく
> と、ツイッター用に書きながら数えるのには便利です。

やはりそういう機能ができていましたか。とりあえずはツイッター
(どの文字も1と数える)と2ちゃんねる(Shift_JIS+CRLFでのバイト数で
板ごとに制限がかかっている)だけ対応できれば当座間に合うので、
早速ユーザメニューに登録しました。

ありがとうございました。

ではでは。

[ ]