「バイト数」の版間の差分
ナビゲーションに移動
検索に移動
見出しの追加と修正 |
SyntaxHighlightにcopyの追加 |
||
| (2人の利用者による、間の7版が非表示) | |||
| 2行目: | 2行目: | ||
編集中の文書のバイト数をステータスバーに表示します。半角文字は1バイト、全角文字は2バイトとして計算します。 | 編集中の文書のバイト数をステータスバーに表示します。半角文字は1バイト、全角文字は2バイトとして計算します。 | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript" copy> | ||
var s = document.selection.Text; | |||
if (s == "") { | |||
s = document.Text; | |||
} | |||
var j = 0; | |||
var l = s.length; | |||
for (var i = 0; i < l; i++) { | |||
var c = s.charCodeAt(i); | |||
if ((c >= 0x0 && c < 0x81) || (c == 0xf8f0) || | |||
(c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) { | |||
j += 1; | |||
} else { | |||
j += 2; | |||
} | |||
} | } | ||
window.status = ("" + j).match(/./g).reverse().join("") | |||
.replace(/(\d{3})/g, "$1,").match(/./g) | |||
.reverse().join("").replace(/^,/, "") + " バイト"; | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == ks 版 == | ||
文字コードを指定、または取得してバイト数を計算します。 | 文字コードを指定、または取得してバイト数を計算します。 | ||
| 46行目: | 39行目: | ||
=== ソースコード === | === ソースコード === | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript" copy> | ||
var encoding = ""; // 指定時はその文字コード。 | var encoding = ""; // 指定時はその文字コード。 | ||
var CRLF = true; // 改行コードが CRLF なら true。そうでないなら false。 | var CRLF = true; // 改行コードが CRLF なら true。そうでないなら false。 | ||
| 52行目: | 45行目: | ||
var charset = ""; | var charset = ""; | ||
var s = | var s = document.selection.IsEmpty ? document.Text : document.selection.Text; | ||
s = CRLF ? s.replace(/\r?\n/g, "\r\n") : s; | s = CRLF ? s.replace(/\r?\n/g, "\r\n") : s; | ||
if (!encoding) { | if (!encoding) { | ||
switch (document.Encoding){ | |||
case meEncodingUTF16LEBOM: | |||
case meEncodingUTF16LENoBOM: | |||
case meEncodingUTF16BEBOM: | |||
case meEncodingUTF16BENoBOM: WriteBytes(s.length * 2 + (BOM?2:0)); Quit(); | |||
case meEncodingUTF8BOM: | |||
case meEncodingUTF8NoBOM: charset = "utf-8"; break; | |||
case meEncodingUTF7: charset = "utf-7"; break; | |||
case meEncodingEUC: charset = "euc-jp"; break; | |||
case meEncodingJIS: charset = "iso-2022-jp"; break; | |||
case meEncodingShiftJIS: charset = "sjis"; break; | |||
} | |||
} else { | } else { | ||
charset = encoding; | |||
} | } | ||
| 77行目: | 72行目: | ||
adodb.Close(); | adodb.Close(); | ||
if (!encoding && ( | if (!encoding && (document.Encoding == meEncodingUTF8NoBOM || (!BOM && document.Encoding == meEncodingUTF8BOM))) { | ||
bytes -= 3; | |||
} | } | ||
WriteBytes(bytes); | WriteBytes(bytes); | ||
function WriteBytes(bytes){ | function WriteBytes(bytes){ | ||
Status = String(bytes).split("").reverse().join("").replace(/(\d{3})/g, "$1,").split("").reverse().join("").replace(/^,/, ""); | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
2025年6月29日 (日) 23:59時点における最新版
Kuro 版[編集]
編集中の文書のバイト数をステータスバーに表示します。半角文字は1バイト、全角文字は2バイトとして計算します。
var s = document.selection.Text;
if (s == "") {
s = document.Text;
}
var j = 0;
var l = s.length;
for (var i = 0; i < l; i++) {
var c = s.charCodeAt(i);
if ((c >= 0x0 && c < 0x81) || (c == 0xf8f0) ||
(c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) {
j += 1;
} else {
j += 2;
}
}
window.status = ("" + j).match(/./g).reverse().join("")
.replace(/(\d{3})/g, "$1,").match(/./g)
.reverse().join("").replace(/^,/, "") + " バイト";
ks 版[編集]
文字コードを指定、または取得してバイト数を計算します。
オプション[編集]
| encoding | 文字コード指定。 空の場合はそのドキュメントの文字モード。 sjis のように直接指定すれば常にその文字コードで計算。 |
|---|---|
| CRLF | 改行コードの指定。 CR + LF の場合は true。 CR または LF の場合は false。 |
| BOM | BOM コード分を加算するかの指定。 BOM 分を加算するときは true(保存したファイルのサイズと一致します)。 BOM 分を加算しない場合は false。 |
ソースコード[編集]
var encoding = ""; // 指定時はその文字コード。
var CRLF = true; // 改行コードが CRLF なら true。そうでないなら false。
var BOM = true; // BOM を考慮する場合は true。考慮しない場合は false。
var charset = "";
var s = document.selection.IsEmpty ? document.Text : document.selection.Text;
s = CRLF ? s.replace(/\r?\n/g, "\r\n") : s;
if (!encoding) {
switch (document.Encoding){
case meEncodingUTF16LEBOM:
case meEncodingUTF16LENoBOM:
case meEncodingUTF16BEBOM:
case meEncodingUTF16BENoBOM: WriteBytes(s.length * 2 + (BOM?2:0)); Quit();
case meEncodingUTF8BOM:
case meEncodingUTF8NoBOM: charset = "utf-8"; break;
case meEncodingUTF7: charset = "utf-7"; break;
case meEncodingEUC: charset = "euc-jp"; break;
case meEncodingJIS: charset = "iso-2022-jp"; break;
case meEncodingShiftJIS: charset = "sjis"; break;
}
} else {
charset = encoding;
}
var adodb = new ActiveXObject('ADODB.Stream');
adodb.Type = 2;
adodb.Charset = charset;
adodb.Open();
adodb.WriteText(s);
var bytes = adodb.Position;
adodb.Close();
if (!encoding && (document.Encoding == meEncodingUTF8NoBOM || (!BOM && document.Encoding == meEncodingUTF8BOM))) {
bytes -= 3;
}
WriteBytes(bytes);
function WriteBytes(bytes){
Status = String(bytes).split("").reverse().join("").replace(/(\d{3})/g, "$1,").split("").reverse().join("").replace(/^,/, "");
}
スポンサーリンク