字节所以我有这样的:查找偏移
public static long FindPosition(Stream stream, byte[] byteSequence)
{
if (byteSequence.Length > stream.Length)
return -1;
byte[] buffer = new byte[byteSequence.Length];
using (BufferedStream bufStream = new BufferedStream(stream, byteSequence.Length))
{
int i;
while ((i = bufStream.Read(buffer, 0, byteSequence.Length)) == byteSequence.Length)
{
if (byteSequence.SequenceEqual(buffer))
return bufStream.Position - byteSequence.Length;
else
bufStream.Position -= byteSequence.Length - PadLeftSequence(buffer, byteSequence);
}
}
return -1;
}
private static int PadLeftSequence(byte[] bytes, byte[] seqBytes)
{
int i = 1;
while (i < bytes.Length)
{
int n = bytes.Length - i;
byte[] aux1 = new byte[n];
byte[] aux2 = new byte[n];
Array.Copy(bytes, i, aux1, 0, n);
Array.Copy(seqBytes, aux2, n);
if (aux1.SequenceEqual(aux2))
return i;
i++;
}
return i;
}
这完美的作品来获得偏移具有特定字节集,但现在我想要做的倒数,发现从一组字节一个特定的抵消。 我该怎么做?
寻求或读取第一偏移?也许创建一个你想做的事情的例子输入和输出,这有点不清楚你想要做什么。 – CodeCaster
对不起,我在这件事情上是一个大白菜,我发现代码和工作为我想要的,我没有自己写。你能分享一个寻求或阅读的例子吗?也许以抵消0x763AFC为例?我知道我很懒,但我已经尝试了很多方法,我在这里找到了stackoverflow,并没有能够使它的工作:/编辑:会像get byte [] {0xXX,0xYY,0xZZ,0xXY, 0xYX}偏移量0x00763AFC – user1913644
'byte [] ReadBytes(Stream stream,long offset,long bytesCount)'这是你需要的吗?读取特定字节从特定偏移量计数? – Dmitry