[xyzzy:08225] Re: バッファの総バイト量
- Subject: [xyzzy:08225] Re: バッファの総バイト量
- From: chiyu <ma11092c@xxxxxxxxxxxxxxxxx>
こんばんわ。chiyu@ふくおか、といいます。
最近はLISP(xyzzyもEmacsも両方とも)はあまり触れていません。
# ちょっとした作業にキーボードマクロは使いますが。
SATO Osamu <yebisuya@xxxxxxxxxxxx> writes:
> koji kimura さん、こんにちは。貴メール
> Time: [Tue, 23 Apr 2002 02:23:52 +0900]
> Title: [xyzzy:08223] Re: バッファの総バイト量
> 拝受しました。
>
> >>やはりファイルに書き出して、ファイルサイズで調べるのが確実な気が
> >>してきました。
>
> うーむ。そうですか。折角、良いことを教わったと 思っていたのですが・・・
バイト量について。
以下は自分の思い込みの勘違いの可能性もあります。
バッファの文字コードを考慮した方法もありそうですし。
convert-encoding-from-internal あたりかな?(あてずっぽう)
(Meadowだとencode-coding-regionを使うとか)
たとえば、Unicodeベースのワープロを使うとします。
すると、たとえShift-JISのファイルを開いたとしても、
ワープロ内ではUnicode(UTF-16)に変換して、データを保持しているわけです。
よって、バイト量はUnicodeで数えるわけで、
半角英数字も1文字2byteで計算するはずです。
xyzzyの内部コード表は M-x insert-internal-char-table で
確認できます。(その時のバッファ内に挿入されます。)
MeadowなどのEmacsの場合、内部コードはまた
別のmuleコードを使っているはずです。
とにかく、元のファイルのコード系がShift-JISのファイルだろうが、
電子メールのJIS(ISO-2022-JP)のファイルだろうが、関係なく、
内部コードに変換するわけです。
だから、バッファ内だけを見ても、元のファイルのバイト数は
わからないと思います。
で、多分、convert-encoding-from-internal で
バッファ内を強制的にShift-JISとかUnicodeとかに
変更すれば、バイト数がわかるのではないか、と
思うわけです。
なお、Meadow(Emacs)にも
(split-string STRING &optional SEPARATORS)
(list-length X)
という関数は存在します。
とりあえず、以上です。
お元気で。