2017-01-12 6 views
0

以下は私のBinaryReaderループです。何が起きているのかを見るために踏み込んだことがありますが、Position変数の設定に戻ると、 "433939"から "433941"それ以外のものは相互作用していますが、このループをまったく変えることはありませんが、433939から433940に行くのではなく、それをスキップします。私がここに欠けているものはありますか?BinaryReaderは前方にスキップする

while (Binary.BaseStream.Position < Binary.BaseStream.Length) 
{ 
    CurrentData = Binary.ReadByte().ToString("X2"); 
    Position = Binary.BaseStream.Position; 

    if (CurrentData == "FF") 
    { 
     if (ImageFound == false) 
     { 
      if (Binary.ReadByte().ToString("X2") == "D8") 
      { 
       Console.WriteLine("Header Found!"); 
       ImageFound = true; 
       Binary.BaseStream.Position = Position; 
       continue; 
      } 
     } 
     if (ImageFound == true) 
     { 
      if (Binary.ReadByte().ToString("X2") == "D9") 
      { 
       Console.WriteLine("Footer Fount!"); 
       ImageFound = false; 
       Image.Append(Binary.ReadByte().ToString("FFD9")); 
       File.WriteAllText(new Random().Next().ToString() + ".bin", Image.ToString()); 
       Console.ReadLine(); 
       continue; 
      } 
     } 
    } 
    if (ImageFound == true) 
    { 
     Image.Append(CurrentData); 
     continue; 
    } 
} 

これが間違っている場合、私はステップオーバーまたは壊すポイントは偉大にすべてされていない、全く貢献していません。言ったように、私は本当に、見ていませんよ

答えて

0

ああ、私は愚かだと感じ、私は休憩を取るかコーヒーを入手する必要があります。問題は、比較のための立場を進めていて、失敗した場合はリセットしないということでした。

if (Binary.ReadByte().ToString("X2") == "D9") 

それを1つのバイトを進めるとfalseを返すので、私はちょうど追加するために必要な、他

Binary.BaseStream.Position--; 
を言っていました
関連する問題