「バイト数」の版間の差分

MSY-07 (トーク | 投稿記録)
スペースからタブに変更
MSY-07 (トーク | 投稿記録)
SyntaxHighlightにcopyの追加
 
(2人の利用者による、間の4版が非表示)
2行目: 2行目:
編集中の文書のバイト数をステータスバーに表示します。半角文字は1バイト、全角文字は2バイトとして計算します。
編集中の文書のバイト数をステータスバーに表示します。半角文字は1バイト、全角文字は2バイトとして計算します。


<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript" copy>
var s = document.selection.Text;
var s = document.selection.Text;
if (s == "") {
if (s == "") {
23行目: 23行目:
</syntaxhighlight>
</syntaxhighlight>


== Ks 版 ==
== ks 版 ==
文字コードを指定、または取得してバイト数を計算します。
文字コードを指定、または取得してバイト数を計算します。


39行目: 39行目:


=== ソースコード ===
=== ソースコード ===
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript" copy>
var encoding = "";  // 指定時はその文字コード。
var encoding = "";  // 指定時はその文字コード。
var CRLF = true;    // 改行コードが CRLF なら true。そうでないなら false。
var CRLF = true;    // 改行コードが CRLF なら true。そうでないなら false。
45行目: 45行目:


var charset = "";
var charset = "";
var s = Document.Selection.IsEmpty ? Document.Text : Document.Selection.Text;
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){
switch (document.Encoding){
case meEncodingUTF16LE:
case meEncodingUTF16LEBOM:
case meEncodingUTF16BE:               WriteBytes(s.length * 2 + (BOM?2:0)); Quit();
case meEncodingUTF16LENoBOM:
case meEncodingUTF8WithSignature:
case meEncodingUTF16BEBOM:
case meEncodingUTF8WithoutSignature: charset = "utf-8";        break;
case meEncodingUTF16BENoBOM:  WriteBytes(s.length * 2 + (BOM?2:0)); Quit();
case meEncodingUTF7:                 charset = "utf-7";        break;
case meEncodingUTF8BOM:
case meEncodingEUC:                   charset = "euc-jp";      break;
case meEncodingUTF8NoBOM:     charset = "utf-8";        break;
case meEncodingJIS:                   charset = "iso-2022-jp";  break;
case meEncodingUTF7:         charset = "utf-7";        break;
case meEncodingShiftJIS:             charset = "sjis";        break;
case meEncodingEUC:           charset = "euc-jp";      break;
case meEncodingJIS:           charset = "iso-2022-jp";  break;
case meEncodingShiftJIS:     charset = "sjis";        break;
}
}
} else {
} else {
70行目: 72行目:
adodb.Close();
adodb.Close();


if (!encoding && (Document.Encoding == meEncodingUTF8WithoutSignature || (!BOM && Document.Encoding == meEncodingUTF8WithSignature))) {
if (!encoding && (document.Encoding == meEncodingUTF8NoBOM || (!BOM && document.Encoding == meEncodingUTF8BOM))) {
bytes -= 3;
bytes -= 3;
}
}
スポンサーリンク