🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.editor.mule
Article #866

バッファ内容のバイト単位での取得

#866
From: 森本 淳
Date: Sat, 12 Sep 1998 00:00
26 lines
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/ ......
Technical Details
Message-ID: <INETNEWS-1-3-3.06095@nifty.ne.jp>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: 10eba4,268f319eba0c80e0
X-Google-Attributes: gid10eba4,public
From: "森本 淳 " <CZX01606@nifty.ne.jp>
Subject: バッファ内容のバイト単位での取得
Date: 1998/09/12
Message-ID: <INETNEWS-1-3-3.06095@nifty.ne.jp>
X-Deja-AN: 390159432
Content-Type: text/plain; charset=iso-2022-jp
MIME-Version: 1.0
Newsgroups: fj.editor.mule