Macro/投稿/75

http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6%2F75


Top > Macro > 投稿 > 75

文字数・バイト数カウント

  • ページ: Macro/投稿
  • 作者: ひよこ枕?
  • カテゴリー: js
  • 投稿日: 2006-01-08 (日) 21:21:22

メッセージ

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
// Count.js ひよこ枕
var CR = 0xd;
var LF = 0xa;
 
var oShell = new ActiveXObject("WScript.Shell");
var str,msg;
var c,prec=0;
var i;
var iSize  = 0;
var i1Byte = 0;
var i2Byte = 0;
var iCRLF  = 0;
var iCR    = 0;
var iLF    = 0;
 
str = Editor.GetSelectedString(0);
//選択文字のサイズ(半角1、全角2でカウント)、半角文字数、全角文字数、改行数をカウント
for(i = 0; i < str.length; ++i) {
        c = str.charCodeAt(i);
        //半角文字にあたるコードの場合、1バイトとしてカウント。
        if ( (c >= 0x0 && c <= 0x7d) || (c == 0xf8f0) || (c >= 0xff61 && c <= 0xff9f) || (c >= 0xf8f1 && c < 0xf8f4)) {
                //1Byte文字
                iSize  += 1;
                //改行コード解析
                if       (c == CR) {
                        iCR += 1;
                } else if (c == LF) {
                        //前の文字がCRだったら
                        if (prec == CR) {
                                iCR -= 1;        //CR数を戻して
                                iCRLF += 1;        //CRLF数をインクリメント
                        } else {
                                iLF += 1;
                        }
                } else {
                        i1Byte += 1;
                }
        } else {
                //2Byte文字
                iSize  += 2;
                i2Byte += 1;
        }
        prec = c;//CRLF検査用に保存
        //oShell.Popup("第" + i + "文字:" + c , 0 , "マクロ実行の確認",1);
}
 
//出力文字列作成
msg  = "";
msg += "サイズ :" + iSize + "バイト\n";
msg += "半角文字:" + i1Byte + "文字\n" ;
msg += "全角文字:" + i2Byte + "文字\n" ;
//改行数は0の場合出さないようにしておく
if (iCR   > 0) msg += "CR改行 :" + iCR    + "文字\n" ;
if (iLF   > 0) msg += "LF改行 :" + iLF    + "文字\n" ;
if (iCRLF > 0) msg += "CRLF改行:" + iCRLF  + "文字" ;
oShell.Popup(msg,0,"文字数カウント結果",0);

  • (^-^ (^Q^ (..; (^_- (^^; (T-T (^^; [heart] -- 2008-11-25 (火) 15:48:02

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

リロード   新規 編集 凍結 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2008-11-25 (火) 15:48:02 (5622d)