2012-03-10 6 views
1

raw_text.txtというファイルがある場合、各ビットを繰り返し処理する方法はありますか?Schemeを使用してファイルのビット表現にアクセスするにはどうすればよいですか?

私は以下を参照してくださいが、それを使用する方法について混乱しています:

http://www.gnu.org/software/mit-scheme/documentation/mit-scheme-ref/File-Manipulation.html - 手順:ファイルの属性/モード-stringは、ファイルの モード文字列を属性、ファイルのモードを示す、新たに割り当てられた文字列ビット。 unixでは、この文字列はunix形式です。 Windowsの場合、この文字列は標準的な "DOS"属性を通常の形式で表示します。

編集:私はMIT-スキーム

+1

「ファイル属性/モード文字列」に記載されている「ビット」は、ファイルのパーミッションであり、実際の内容ではありません。 –

+0

私はちょっと混乱しています。ファイル内の文字、1つずつ、またはファイル内の各文字を定義する実際の1と0それはバイナリファイルかテキストファイルですか?それがテキストファイルの場合、そのエンコーディングが適切であることを知っています –

+0

@ÓscarLópezファイルタイプにかかわらずファイルの各文字を定義する実際の1と0を通過できるようにしたいのですか?mp3またはodtなど – zallarak

答えて

3

を使用していますこれは、実装固有です。物事のラケット側では、いくつかのライブラリがあります。

  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

あなたはおそらく同様に、バイナリ解析ライブラリのようなものを使用することができます。http://okmij.org/ftp/Scheme/binary-io.html、あなたのSchemeの実装がそれをサポートできるかぎりです。

MITスキームでは、bit-string機能を使用できます。

+0

あなたのソリューションをありがとう。私はMITスキームを使用しており、すぐにバイナリ解析ライブラリを調べます。 – zallarak

+0

バイナリパースライブラリは、私が探していたものとまったく同じものではありませんでした。ビット[0sと1s]をファイルに読み書きすることはありません。私はもう少し詳しくこの質問を再投稿するつもりです。 – zallarak

+0

答えを修正する:MIT Schemeには、あなたが探しているかもしれないビット列に関する一連の関数があります。ファイルからバイトを読み取って、** unsigned-integer->ビットストリング**を使用して、それぞれをビットストリングに変換できます。ファイルの内容全体を1つのビット列に変換する便利な関数が既に存在するのかどうかはわかりませんが、まだ存在していない場合はコード化するのが面倒ではありません。 – dyoo

0

私は実際にこれで何かをしようとはしていませんが、私はあなたがmit-scheme文書のこのセクションを探していると思います:Input/Output。具体的にはファイルポートと入力プロシージャのセクション。

特にバイナリビットの読み取りについては何も表示されませんでしたが、文字バイトであれば手順があるように見えます。多分このようなことをしたいのですか? <procedure>は、ファイルポートを取り、そのファイルから物事を読み取るための入力手順を使用します

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

または

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

あなたは何をしようとしていますか?

EDIT:誰かがこのhereに書き留めたようです。

+0

私は以下のような整数のリストを取っています:(1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0)そして基本的に整数をビットとしてファイルに書き出します。私はそれらのコマンドを試しました、私が使用した手順はread-charでしたし、バイナリファイルを生成できませんでした。おそらく私は間違ったprocを使用していますが、私はビットを読み取るためのものを見つけることができませんでした。あなたの応答をありがとう。 – zallarak

関連する問題