首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BinaryReader跳过位置

BinaryReader跳过位置
EN

Stack Overflow用户
提问于 2017-01-12 02:38:13
回答 1查看 921关注 0票数 0

下面是我的BinaryReader循环,我试着通过它来查看发生了什么,但是当它返回到设置位置变量时,它会从" 433939“转到"433941",没有其他任何与它交互的东西,它根本没有改变,它没有经过这个循环,而是跳过它而不是从433939跳到433940。这里有什么东西我遗漏了吗?

代码语言:javascript
复制
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;
     }
}

我真的不知道这是怎么回事,就像我说的那样,跨过一步,或者断点根本帮不上忙,这并不都是太棒了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-12 02:48:29

哦,我觉得很蠢,我必须休息一下或者喝杯咖啡。问题是,我提出了一个比较的立场,而不是重置它,如果它失败了。

代码语言:javascript
复制
if (Binary.ReadByte().ToString("X2") == "D9")

是将它提升到一个字节,并返回false,所以我只需要添加,否则就会说

代码语言:javascript
复制
Binary.BaseStream.Position--;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41604233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档