【发布时间】:2015-12-26 22:14:46
【问题描述】:
所以我需要读取一个包含十六进制“单词”的文件(ACSII)。当然,单词可以是任意长度,但总是从偏移量 0x1290 开始。我想要做的是读取从偏移量 0x1290 开始的文件的十六进制,并继续直到它遇到一个空字节(00)。到目前为止,我尝试过的所有编码似乎都需要固定长度才能读取。
filePath = "C:\myfile"
BinaryReader reader = new BinaryReader(new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.None));
reader.BaseStream.Position = 0x1290; // The starting offset
byte[] word = reader.ReadBytes(); // Must specify length within ReadBytes(e.g. 0x99)
reader.Close();`
在所需的“字”之后通常可以有其他不需要的十六进制数据,但是在“字”之后总是有一个空字节。这就是为什么我不能指定长度。
【问题讨论】:
-
但是问题是什么?如果您需要读取多个字节直到达到 0 字节,为什么不能一次从文件中读取一个字节?
-
你能帮我解决这个问题吗?我对 c# 很陌生。我想我需要某种循环,但我不能使用 byte[] 数组?我还打算将十六进制字符串转换为文本字符串进行显示
标签: c# .net c#-4.0 hex filereader