0

テキストとインラインのバイナリ データを含む csv ファイルがあります (つまり、Text,0xFF00)。両方の値を読み取り、データベースに保存する必要があります。現在、StreamReader を使用して行を読み取り、コンマで分割しています。私が抱えている問題は、バイナリ データを同等の byte[] に変換する必要があることです (つまり、0xFF00 は {255,0} になります)。エンコーディングを使用したあらゆる種類の変換により、バイナリが変更されます。

byte[] data= System.Text.Encoding.ASCII.GetBytes(SplitString[1]);

ファイル全体がバイナリである場合File.ReadAllBytes(file)、バイナリ部分を一時ファイルに書き出さずにメモリ内でこれを行う方法はありますか?

4

1 に答える 1

0

テキストとインラインのバイナリ データを含む csv ファイルがあります。

それは悪いスタートです。変更できる可能性はありますか?

基本的に、そもそもバイナリ データをテキストとして読み取ろうとするべきではありません。これを行うと、ほぼ確実にデータが失われます。(ISO-Latin-1 を使用することもできますが、これは厄介な問題の回避策です。)

代わりに、おそらくすべてのデータをバイナリとして読み取り、Encoding.GetString.

ファイルのどのビットがファイルの何を意味するかをどのように知ることができますか? (つまり、どのビットがバイナリで、どのビットがテキストか)

私が抱えている問題は、バイナリ データを同等の byte[] に変換する必要があることです (つまり、0xFF00 は {255,0} になります)。

確認するために、ファイルにはバイナリ データの 16 進数表現ではなく、実際にバイナリ データが含まれていますよね? 実際にはすべてがテキスト データであるが、その一部が 16 進数を使用してテキストにエンコードされたバイナリ データである場合、作業ははるかに簡単になります。

于 2012-08-21T19:54:33.443 に答える