Thread View: fj.editor.mule
2 messages
2 total messages
Started by 森本 淳
Sat, 12 Sep 1998 00:00
バッファ内容のバイト単位での取得
Author: 森本 淳
Date: Sat, 12 Sep 1998 00:00
Date: Sat, 12 Sep 1998 00:00
26 lines
2015 bytes
2015 bytes
会社のニュースサーバが止まっているので、NIFTY-Serve からすみません。 19.28.1 ベースの mule 2.3 にて、任意のバイナリファイルの内容を吟味する elisp の関数を組もうとしているのですが、「任意のバイナリ・ストリーム から任意のバイト数めの値を読む」のが なかなか出来なくて困っています。 具体的には、Emacs Lisp だけで GIF や JPEG (JFIF) ファイルのヘッダを なめて、画像サイズを得る関数を作ろうと思っています。 適当なバッファに *noconv* で insert-file しておいて、 それを例えば (string-to-char (buffer-substring 1 2)) とかして 頭の1バイトだけ読もうとするのですが、たとえば 0xff から始まる JFIF などでは、length が 4 バイトのものが取れてしまいます。 coding-system を nil にすると、今度は 0xff が 0x7f になってしまう ようでした。 C なら getc なり fseek なりで簡単に行けることですが.. 「1文字」取った文字列の length が 1 より大きかったらまたばらす.. などとやればいいのかもしれませんが、なにかこう、もっと簡単で 早くて正しい、できれば emacs 19~20 の違いなどにも依存しない、 バイト単位のファイル操作は、どうやったらよいのでしょうか。 .. 森本 淳 (Jun Morimoto) ................................................. .. (株)IMAGICA Internet Planning Bureau - `Marib' ......................... .. morimoto@lab.imagica.co.jp http://www.asahi-net.or.jp/~ev1j-mrmt/ ......
Re: バッファ内容のバイト単位での取得
Author: Jun Morimoto
Date: Fri, 11 Sep 1998 00:00
Date: Fri, 11 Sep 1998 00:00
22 lines
1613 bytes
1613 bytes
自己解決しました。 > 会社のニュースサーバが止まっているので、NIFTY-Serve からすみません。 会社のニュースサーバが動き出したので、会社から自己フォローします. :) > 19.28.1 ベースの mule 2.3 にて、任意のバイナリファイルの内容を吟味する > elisp の関数を組もうとしているのですが、「任意のバイナリ・ストリーム > から任意のバイト数めの値を読む」のが なかなか出来なくて困っています。 coding-system を *internal* にして適宜バッファに読み込み、 (string-to-char-list (buffer-substring 1 ヘッダ長さ)) でほしいヘッダ部分のバイト値のリストを取れました。 .. 森本 淳 (Jun Morimoto) ................................................. .. (株)IMAGICA Internet Planning Bureau - `Marib' ......................... .. morimoto@lab.imagica.co.jp http://www.asahi-net.or.jp/~ev1j-mrmt/ ......
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads