4

私の独自のテキストエンコーディングはすべての256バイト値を使用し、下位128バイトはほとんどASCIIと同じです(重要なもの、つまり制御文字、スペース、改行はすべてまったく同じです)。このファイルをC#.NETでバイトとして読み取ることができ、それでも1行ずつ読み取り、正規表現検索を実行できるようにしたいと考えています。C#.NETでこれを行うための最良の方法は何ですか?

エンコーディングで最初の128バイトの値のみを使用した場合、これは簡単であることがわかります。上位の文字が誤ってUnicode値に変換されないようにしたいだけです。

4

2 に答える 2

4

の独自のサブクラスを実装したいようですEncoding。これを行うのはかなり簡単で、StreamReaderコンストラクター(またはFile.OpenTextなど)に渡すことができます。

私が(何年も前に)EBCDICを処理するために書いたコードを見ると、それを妥当な出発点として使用できるはずです。

ちなみに、ASCIIとの重複はこれとはほとんど関係がないようです。

上位の文字が誤ってUnicode値に変換されないようにするだけです。

バイナリデータをテキストに変換するときはいつでも、Unicode値に変換しています。これが.NETのテキストの定義方法です。

于 2012-10-25T11:40:45.227 に答える
-2

次のように、stremリーダーでファイルを読み取ることができます。

StreamReader sr = new StreamReader("C:\\Details.txt", ASCIIEncoding.ASCII);
于 2012-10-25T11:50:09.407 に答える