2

我是这里的新手所以请对我温柔=)

我正在尝试用 LISP(对不起,没有其他语言)开发一个脚本来创建一个位图文件。我在不同的网站上访问了有关位图格式的信息,但我担心的是程序本身。

使用 LISP(和 perl / awk,我的环境是 Linux RHEL5)我只能使用“常规”ASCII 代码(我的意思是可打印/可显示)创建一个文本文件。

我的问题是关于不可打印的字符。例如,如果我想在位图标题中放入十六进制链 00 00 00 00,那么对应的 ASCII 码是什么?

我怎样才能在文件中打印它们?

非常感谢您的帮助和澄清!

最好的,

P-chan

4

2 回答 2

6

Common Lisp 可以读/写任何你喜欢的二进制数据。

您需要将流作为二进制流打开,并使用、READ-BYTE和等函数。WRITE-BYTEREAD-SEQUENCEWRITE-SEQUENCE

例子:

(with-open-file (s "temp-bytes" 
                   :direction :output
                   :element-type 'unsigned-byte)
  (write-byte 101 s))
于 2012-07-26T06:05:08.453 回答
1

除了按字节操作(请参阅 Rainer 的回答),您还可以使用类似opticl.

于 2012-07-26T20:48:32.917 回答