如何使用Scheme访问文件的位表示?

时间:2012-03-10 21:20:04

标签: io scheme

如果我有一个名为raw_text.txt的文件,有没有办法可以遍历每一位?

我看到以下内容,但对如何使用它感到困惑:

http://www.gnu.org/software/mit-scheme/documentation/mit-scheme-ref/File-Manipulation.html - procedure:file-attributes / mode-string属性 文件的模式字符串,一个新分配的字符串,显示文件的模式位。在unix下,此字符串采用unix格式。在Windows下,此字符串以通常的格式显示标准“DOS”属性。

编辑:我正在使用mit-scheme

2 个答案:

答案 0 :(得分:3)

这是特定于实现的。在Racket方面,有一些库:

  1. http://planet.racket-lang.org/display.ss?package=bitsyntax.plt&owner=tonyg

  2. http://planet.racket-lang.org/display.ss?package=bit-io.plt&owner=soegaard

  3. 你也可以使用二进制解析库之类的东西:http://okmij.org/ftp/Scheme/binary-io.html,只要你的Scheme实现可以支持它。

    在MIT Scheme下,您可以使用bit-string函数。

答案 1 :(得分:0)

我实际上并没有试图对此做任何事情,但我认为你正在寻找mit-scheme文档的这一部分:Input/Output。特别是文件端口和输入过程部分。

我没有看到任何关于读取二进制位的具体内容,但是如果它是你想要的字符字节,那么看起来就有这样的程序。也许你想做这样的事情?

(call-with-input-file "raw_text.txt" <procedure>)

(call-with-binary-file "raw_text.txt" <procedure>)

<procedure>将获取文件端口并使用输入过程从该文件中读取内容。

出于好奇,你想做什么?

编辑:似乎有人写了here