【发布时间】:2014-07-26 10:37:41
【问题描述】:
我正在尝试在文件中搜索十六进制值,如果存在该值,我需要从找到的位置复制 char 的 16 个字节。我正在尝试在 C# 中做同样的事情。
请在下面找到我尝试过的代码,不胜感激。
BinaryReader bw = new BinaryReader(File.OpenRead(filepath));
byte[] bc = { 0xa0, 0x00, 0x00, 0x03 };
for (int i = 0; i < br.BaseStream.Length-10;i++)
{
if (bw.ReadUInt32() == 0xa00003)
{
Console.WriteLine("Found @ {0}", i);
}
bw.Close();
我收到如下错误:
“System.IO.EndOfStreamException”类型的未处理异常 发生在 mscorlib.dll 中
附加信息:无法读取超出流末尾的内容。
【问题讨论】:
-
“16 字节的字符”是什么意思?字符和字节有很大的不同,你需要确切地知道你想要什么。我怀疑您的错误是因为您一次读取 4 个字节,但读取 (length-in-byte - 10) 次。
-
包含 16 个字符的字符串
-
啊,那可能超过 16 个字节......你需要知道正在使用什么编码。你知道吗?
-
我只需要获取 16 个字节,并通过控制台将其显示为字符串。我不知道
-
你需要找出答案。这 16 个字节 实际上是 文本,还是需要将它们转换为十六进制?您要查找的 4 字节序列肯定在 4 字节边界上吗?