如何使用VB.NET查找字节数组中的字节

时间:2013-12-22 07:12:19

标签: arrays vb.net search find bytearray

如何在字节数组中搜索特定字节?

例如,我使用Instr(String, "something to search")InstrRev(String, "something to search")作为字符串。我基本上不想循环遍历字节数组,因为我有非常长的字节数组,我想在闪存中搜索字节。

我只需要最快和最简单的代码来完成我的任务。

什么是更快更简单的搜索方式?文件的字节数组,或者用文件流传输文件然后在其中搜索?

2 个答案:

答案 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中)。