Hi, I'm using MS VS2010, C#.NET. I have an Array of bytes wherein I need to identify a pattern of multiple bytes. Much like the IndexOf() method does, but with an array of bytes.
Therefore, if my array contained "0A0A0A0A" (which is four tens in a row), I would like to know the index of where that pattern begins.
I came up with a way to find a NULL value, but it doesn't work for patterns of multiple bytes. Can someone provide some help to get me back on track?
Obviously I can convert the bytes to string and then look for the string equivalent, but there has to be a way to do it without so many conversions, which can cause "misreads".
// hexAddress - the starting address of the string
// bytes2ReadAsString - the amount of bytes to read past the starting point.
private string findNull(string hexAddress, string bytes2ReadAsString)
int counter = 0;
string i = "";
br.BaseStream.Position = (Int32.Parse(hexAddress, System.Globalization.NumberStyles.HexNumber));
foreach (byte mybyte in br.ReadBytes(Convert.ToInt32(bytes2ReadAsString)))
i = counter.ToString("X");
// This returns the index of where the NULL begins.