Как я могу получить доступ к битовому представлению файла, используя Scheme? - PullRequest
1 голос
/ 11 марта 2012

Если бы у меня был файл с именем raw_text.txt, есть ли способ, которым я мог бы перебирать каждый бит?

Я вижу следующее, но не понимаю, как его использовать:

http://www.gnu.org/software/mit-scheme/documentation/mit-scheme-ref/File-Manipulation.html - процедура: атрибуты файла / атрибуты строки режима Строка режима файла, недавно выделенная строка, показывающая биты режима файла. Под unix эта строка в формате unix. Под Windows эта строка показывает стандартные атрибуты «DOS» в их обычном формате.

РЕДАКТИРОВАТЬ: я использую мит-схему

Ответы [ 2 ]

3 голосов
/ 11 марта 2012

Это зависит от реализации. На стороне Ракетки есть несколько библиотек:

  1. http://planet.racket -lang.org / display.ss? Пакет = bitsyntax.plt & владелец = TonyG

  2. http://planet.racket -lang.org / display.ss? Пакет = бит io.plt & владелец = soegaard

Возможно, вы также можете использовать что-то вроде библиотеки двоичного разбора: http://okmij.org/ftp/Scheme/binary-io.html,, если ваша реализация Scheme может это поддерживать.

В схеме MIT вы можете использовать функции bit-string .

0 голосов
/ 12 марта 2012

Я на самом деле ничего не пытался с этим сделать, но я думаю, что вы ищете этот раздел документации по mit-схеме: Ввод / Вывод .В частности, разделы о портах файлов и процедурах ввода.

Я не видел ничего конкретно о чтении двоичных битов, но если вам нужны именно символьные байты, похоже, для этого есть процедуры.Может быть, вы хотите сделать что-то вроде этого?

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

или

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

Где <procedure> возьмет порт файла и использует процедуры ввода для чтения данных из этого файла.

Просто из любопытства, что вы пытаетесь сделать?

РЕДАКТИРОВАТЬ: Кажется, что кто-то написал на этом здесь .

...