FSO.Files.HIT.HITFile.FindBytePattern C# (CSharp) Method

FindBytePattern() public method

public FindBytePattern ( Stream stream, byte pattern ) : int
stream Stream
pattern byte
return int
        public int FindBytePattern(Stream stream, byte[] pattern)
        {
            //a simple pattern matcher
            stream.Seek(0, SeekOrigin.Begin);
            for (int i = 0; i < stream.Length; i++)
            {
                var b = stream.ReadByte();
                if (b == pattern[0])
                {
                    bool match = true;
                    for (int j = 1; j < pattern.Length; j++)
                    {
                        var b2 = stream.ReadByte();
                        if (b2 != pattern[j])
                        {
                            match = false;
                            break;
                        }
                    }
                    if (match) return (int)stream.Position;
                    else stream.Seek(i+1, SeekOrigin.Begin);
                }
            }
            return -1; //no match
        }