このテキストファイルには、さまざまなフィールドが含まれています。フィールドによってはバイナリデータが含まれている場合があります私はファイル内のすべてのデータを取得する必要がありますが、今すぐStreamReaderを使用すると、バイナリデータブロックとそれ以降のデータを読み取ることはありません。この問題を解決する最良の解決策は何でしょうか?StreamReaderとバイナリデータ
例:
field1|field2|some binary data here|field3
は、今私はこのようなファイルを読み込む:
public static string _fileToBuffer(string Filename)
{
if (!File.Exists(Filename)) throw new ArgumentNullException(Filename, "Template file does not exist");
StreamReader reader = new StreamReader(Filename, Encoding.Default, true);
string fileBuffer = reader.ReadToEnd();
reader.Close();
return fileBuffer;
}
は編集:私はバイナリフィールドの開始位置と終了位置を知っています。
私はデータソースを制御できないので、何とか対処しなければなりません。 – hs2d
@ hs2d:バイナリデータに '|'のASCII表現(または何らかのエンコーディングが使われています)が含まれていると何が起こりますか?最初の2つのフィールドに、予想される長さを示すものはありますか? –
予想される長さを教えてくれるものは何もありません。私の他の質問を見てください。私は1つのフィールドの最後をマークするフィールド区切りを取得するテンプレートを使用して:[リンク](http://stackoverflow.com/questions/6479505/c-template-parsing-and-matching-with-text-file) – hs2d