我的代码如下显示通过文件搜索特定模式....是否有无论如何,我可以添加到此代码,以便我可能可能搜索可能的四种模式。C#模式搜索
所以,如果它不匹配第一个,然后它看起来看它是否符合第二个等等....
非常感谢。
byte[] pattern = new byte[5] { 00, 00, 00, 08, 00 };
byte[] file = File.ReadAllBytes("C:\\123.cfg");
var result = Enumerable.Range(0, file.Length - pattern.Length + 1)
.Where(i => pattern.Select((b, j) => new { j, b })
.All(p => file[i + p.j] == p.b))
.Select(i => i + pattern.Length - 1);
int[] PatternArray = result.ToArray();
** * ** * ** * **编辑* ** * ** * ** * *
运行程序I插入一个断点,看看有什么阵列存储....这是它报道
response Count = 6 System.Collections.Generic.List<int[]>
[0] {int[1]} int[]
[0] 1577 int
[1] {int[0]} int[]
[2] {int[0]} int[]
[3] {int[0]} int[]
[4] {int[0]} int[]
[5] {int[6]} int[]
[0] 31 int
[1] 246 int
[2] 448 int
[3] 663 int
[4] 864 int
[5] 1734 int
模式的结果似乎都在那里,我是正确的思维,这是一个二维数组? ...如果是的话,无论如何,我可以在一个单一的阵列?
非常感谢
还有一些比straigtforward 1-1匹配更好的方法http://en.wikipedia.org/wiki/String_searching_algorithm – driushkin
你的病毒扫描器怎么样? ;) –