「
文字カウント
」を編集中
2014年2月1日 (土) 22:25時点における
Masme
(
トーク
|
投稿記録
)
による版
(概要に「容量を一度に計算できる」点を追加。)
(
差分
)
← 古い版
|
最新版
(
差分
) |
新しい版 →
(
差分
)
ナビゲーションに移動
検索に移動
警告: このページの古い版を編集しています。
公開すると、この版以降になされた変更がすべて失われます。
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、さまざまなメリットもあります。
スパム攻撃防止用のチェックです。 決して、ここには、値の入力は
しない
でください!
<div style="float:right">__TOC__</div> 選択範囲or文書全体の字数・容量を算出するマクロです。<br>Shift_JIS/UTF-16 (BOM無)/UTF-8 (BOM無) での容量を一度に確認できます。 [[ファイル:CharacterCounter.png|border]] 【注意点】 * 改行はすべて CR+LF として計算します(Mery の仕様上、改行コードを判別できないため)。 * Shift_JIS は Microsoft コードページ 932 (CP932) / Windows-31J の仕様に準拠しています。 * Unicode 対応は一部に留まります。 ** サロゲートペアは、Mery では仕様上2文字とカウントされますが、このマクロでは1文字とカウントします。 ** 結合/合成文字や異体字セレクタは、以下の理由により対応保留中です。現状ではMery と同じ仕様でカウントされます。 *** 他の字と組み合わせて1文字を構成する性質上、総数には含めない、という対応で良いのか否か。 *** 日本語環境では出番の無さそうなインド系文字の結合/合成文字にもきちんと対応すべきか否か。 ** ゼロ幅空白や制御文字 (LRO/RLO など) は、対応未定です。 * カウントする文字数や文字種が増えるほど処理に時間がかかります(作者の環境では、100万字の処理に約1秒かかりました)。<br>ステータスバーに処理に要した時間が表示されますので参考にしてください。 ==ソースコード== ダウンロード→ [[メディア:文字カウント.zip|文字カウント.zip]] * 拙作ですがアイコンファイルを同梱してあります。<br>Mery の My Macros フォルダにアイコンファイル (文字カウント.ico) を配置すれば、ツールバーにアイコンが読み込まれます。 ==文字種別一覧== デフォルトで定義されている文字種は下表のとおりです。分類は Shift_JIS (CP932) を基準にしています。 <b style="background:#fcc;"> 赤地 </b> の項目は、デフォルトで表示結果に採用されている項目です。<br>「総字数」=<b style="background:#fcc;"> 総数 </b>、「字数」=<b>総数</b> から <b style="background:#fcc;"> 改行 </b> と <b style="background:#ccf;"> 空白 </b> を引いた数、となっています。 {| class="wikitable" style="text-align:center;" ! colspan="4" | 分類<br>type ! 該当文字 /正規表現/<br>re !! 容量 (byte)<br>sjis/utf16/utf8 !! 備考 |- ! rowspan="4" style="background:#ccc;" | ! colspan="3" | 階層 | /^(?=\.)/gm || || ピリオドで始まる行 (階層付きテキスト) |- ! colspan="3" style="background:#fcc;" | 段落 | /^(?= [^ \s]+)/gm || || 全角空白1字下げで始まる行 |- ! colspan="3" | 会話 | /^(?=「.+」$)/gm || || 「 で始まり 」 で終わる行 (会話文) |- ! colspan="3" | 英単 | /\b(?=\w)/g || || 0-9A-Za-z_ で構成される単語 |- ! rowspan="31" style="background:#fcc;" | 総数 |- ! rowspan="3" | 制御 ! colspan="2" style="background:#fcc;" | 改行 | CR+LF<br><s style="color:#999;">CR または LF</s> | 2 / 4 / 2<br><s style="color:#999;">1 / 2 / 1</s> | ※仕様上、改行は CR+LF とみなす<br>ASCII制御文字 |- ! style="background:#ccf;" | 空白 !! タブ | /\t/g || 1 / 2 / 1 || ASCII制御文字 |- ! colspan="2" style="background:#ccc;" | | /[\x00-\x1F\x7F]/g || 1 / 2 / 1 || 上記以外のASCII制御文字 |- ! rowspan="6" style="background:#fcc;" | 半角 ! style="background:#ccf;" | 空白 !! 半空 | / /g || 1 / 2 / 1 || ASCII文字 |- ! 数字 !! 半数 | /[0-9]/g || 1 / 2 / 1 || ASCII文字 |- ! 英字 !! 半英 | /[A-Za-z]/g || 1 / 2 / 1 || ASCII文字 |- ! rowspan="2" | 記号 ! style="background:#ccc;" | | /[!-/:-@[-`{-~]/g || 1 / 2 / 1 || 空白・英数以外のASCII文字 |- ! rowspan="2" style="background:#fcc;" | 半カナ | /[。「」、・ー゙゚]/g || 1 / 2 / 3 || |- ! 仮名 | /[ヲ-ッア-ン]/g || 1 / 2 / 3 || |- ! rowspan="14" style="background:#fcc;" | 全角 ! style="background:#ccf;" | 空白 !! 全空 | / /g || 2 / 2 / 3 || |- ! 数字 !! 全数 | /[0-9]/g || 2 / 2 / 3 || |- ! 英字 !! 全英 | /[A-Za-z]/g || 2 / 2 / 3 || |- ! rowspan="2" | 仮名 ! かな | /[ぁ-ん]/g || 2 / 2 / 3 || |- ! カナ | /[ァ-ヶ]/g || 2 / 2 / 3 || |- ! colspan="2" | ギリシャ | /[Α-ΡΣ-Ωα-ρσ-ω]/g || 2 / 2 / 2 || ※SJISではシグマの語末形 ς を扱えない |- ! colspan="2" | キリル | /[ЁА-Яа-яё]/g || 2 / 2 / 2 || ※Unicodeでは Ё ё の配置が異なる |- ! rowspan="2" colspan="2" | 記号 | /[´¨±×÷°§¶]/g || 2 / 2 / 2 || UTF-8で2バイトの全角記号(8字) |- | /[、。, (中略) †‡◯]/g || 2 / 2 / 3 || UTF-8で3バイトの全角記号(138字) |- ! colspan="2" | 罫線 | /[─│┌ (中略) ┥┸╂]/g || 2 / 2 / 3 || 罫線素片(32字) |- ! rowspan="3" | 漢字 !第一 | /[亜唖娃 (中略) 湾碗腕]/g || 2 / 2 / 3 || JIS第一水準漢字(2965字) |- !第二 | /[弌丐丕 (中略) 瑤凜熙]/g || 2 / 2 / 3 || JIS第二水準漢字(3390字) |- ! rowspan="2" style="background:#fcc;" | MS拡張 | /[纊褜鍈 (中略) 鶴鸙黑]/g || 2 / 2 / 3 || IBM拡張文字(漢字360字) |- ! style="background:#ccc;" | | /[①-⑳Ⅰ (中略) ¦'"]/g || 2 / 2 / 3 || NEC特殊/IBM拡張文字(記号等87字) |- ! rowspan="2" style="background:#ccc;" | ! rowspan="2" colspan="2" | MS外字 | /[\uE000-\uE757]/g || 2 / 2 / 3 || Microsoft ユーザー定義外字領域(1880字) |- | /[\uF8F0-\uF8F3]/g || 1 / 2 / 3 || ※SJIS保存時、0xA0/FD/FE/FF に変換される |- ! rowspan="5" style="background:#fcc;" | Uni ! rowspan="2" colspan="2" style="background:#ccc;" | | /[¢£«¬¯µ·¸»]/g || 2 / 2 / 2 || ※SJIS保存時、よく似た全角文字に変換される |- | /ゔ/g || 2 / 2 / 3 || ※SJIS保存時、全角カナの ヴ に変換される |- ! colspan="2" style="background:#ccc;" | | /[\u0080-\u07FF]/g || 1? / 2 / 2 || 上記以外のUTF-8で2バイトの文字 |- ! colspan="2" style="background:#fcc;" | SP | /[\uD800-\uDBFF][\uDC00-\uDFFF]/g || 2? / 4 / 4 || サロゲートペア (U+10000-10FFFF) |- ! colspan="2" style="background:#ccc;" | | /[\u0800-\uFFFF]/g || 1? / 2 / 3 || 上記以外のUTF-8で3バイトの文字 |} <!-- * SP=Surrogate Pair の略。CC=Combining Character の略。VS=Variation Selector の略。 --> * Shift_JIS では、<b style="background:#fcc;"> Uni </b> に分類される文字を正常に保存することができません。保存を強行した場合は、よく似た文字や ? の文字に変換されます。 * Shift_JIS では、<b style="background:#fcc;"> MS拡張 </b> に分類される文字は「機種依存文字」に該当するため、Windows 以外では文字化けする可能性があります。 ==文字種別について== 文字種の分類は、ソースコードの最初のほうにある「検索リスト」の部分で定義されています。 <source lang="javascript"> var list = [ {sjis:数値,utf16:数値,utf8:数値, type:"文字列", re:正規表現}, ~中略~ ]; </source> {| class="wikitable" ! key(添字) !! value(値) !! 説明 |- ! re !! 正規表現<br>(RegExp) | カウントしたい文字を正規表現で記述します。<br>たとえば全角カタカナなら、<code style="color:#c00;">re:/[ァ-ヶ]/g</code> という具合です。<br>利用できる正規表現は、実行環境 JScript (JavaScript) の仕様に依存します。 |- ! type !! 文字列<br>(String) | 文字種の分類名です。複数設定したい場合はカンマで区切ります。<br>たとえば、<code style="color:#c00;">type:"総数,全角,カナ"</code> という具合です。<br>この場合、type["総数"], type["全角"], type["カナ"] の変数にカウントが加算されます。 |- ! sjis<br>utf16<br>utf8 !! 数値<br>(Number) | Shift_JIS/UTF-16/UTF-8 での1文字 (1カウント) あたりの容量(バイト)設定です。<br>省略した場合は 0 とみなされます。 |} ==表示結果について== 表示される結果は、ソースコードの最後のほうにある「ここから~ここまで結果の定義」の部分で定義されています。<br>ソースコードを単純化すると、以下のような処理になっています。 <source lang="javascript"> var result = (※出力用のテキストを生成); Alert(result); </source>
編集内容の要約:
MeryWikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MeryWiki:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の数式を計算してその答えを欄に入力してください (
ヘルプ
):
いちたすには =
キャンセル
編集ヘルプ
(新しいウィンドウで開きます)
スポンサーリンク
ナビゲーション メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
スポンサーリンク
スポンサーリンク
案内
メインページ
ヘルプ
よくある質問
マクロリファレンス
マクロライブラリ
プラグインライブラリ
構文ファイル
テーマ
寄付・開発支援
練習用ページ
開発室
開発者のブログ
ツール
スポンサーリンク