2007年1月22日 11:03 am #4005
匿名
ゲスト
「何のサイズ」を知りたいのかを、明確にしないと、明確な答えはないと思いますよ。
そもそもEmEditorは内部では、全てUnicodeのはずです。
様々な種類のエンコードのファイル
↓
Unicodeへマッピングして、EmEditorメモリ上に保持。
↓
保存時指定(通常は開いた時の自動判定エンコード)のエンコードで保存。
と言う流れですから、document.selection オブジェクトに対して操作しても、それは
Unicodeのサイズになってしまいます。
2byte文字とかの概念すらなく、一文字は全て固定サイズ(Unicode良く分かってないの
で、厳密には違うかもしれないですけど)になると思いますよ。
Ctrl+I で見る限り、16進数4桁なので内部は1文字 2byte なのかなと思いますけど、
そうすると、
alert( document.selection.Text.length * 2 );
で求められるような気もします。
また、一文字「あ」だけのUTF-8ファイル を、想定しても、Bomがある時とない時、「ファ
イルのサイズ」は変わりまし、UTF-8では、保存すると「あ」は3バイトですし。
結局、Snowさんの言うとおり、保存してみるまで分からないという事です。
ですから、マクロで、改行コード、エンコード指定して一時ファイルとして別名保存
して、マクロのActiveXでファイルのサイズを取得するとかしないと、保存した時のサイズはどうしようもないはずです。
perl だったら、外部ツールで「ファイルを保存するをオン」にして
以下のコマンド実行でバイト数出せると思いますけど。
cmd /k perl -e “print -s ‘$(Path)’;”