如何在字节数组中搜索特定字节?
例如,我使用Instr(String, "something to search")
或InstrRev(String, "something to search")
作为字符串。我基本上不想循环遍历字节数组,因为我有非常长的字节数组,我想在闪存中搜索字节。
我只需要最快和最简单的代码来完成我的任务。
什么是更快更简单的搜索方式?文件的字节数组,或者用文件流传输文件然后在其中搜索?
答案 0 :(得分:1)
System.Array类在使用数组时会暴露许多有用的方法。
Dim [array] As Byte() = New Byte() {1, 2, 4, 6, 3}
Dim find As Byte = 3
Dim index As Integer = System.Array.IndexOf(Of Byte)([array], find)
If (index = -1) Then
'Not found...
Else
'Found!
End If
答案 1 :(得分:0)
使用:
Dim Tag As Byte, cTag() As Byte = UTF8Encoding.UTF8.GetBytes("Host: ") ' For poc
Dim Ret As Byte, cTagLength as Byte = cTag.Length 'POS
For Each Ret In cBuffer 'Ret pos seek "Host: "
If cBuffer(Ret) = cTag(Tag) Then
Tag = +1 ' Avryleter
Else
Tag = 0 ' Reset
End If
If Tag = cTagLength Then
Exit For
End If
Next
它仍然是相同的代码(在VB.NET中)。