VB 二进制打开的大文件如何快速搜索
VB 二进制打开的大文件怎么快速搜索?
VB 二进制打开的大文件怎么快速搜索? 文件有400多M 知道要搜索的大概地址 可以直接跳到那里搜索吗? 用循环查找 要6分钟才能找到
例如
方块圈住的是目标 能不能直接从红色箭头指的那个地方直接往下搜索
------解决思路----------------------
试试下面代码,680M搜索最后面的8个字节,仅需30s
VB 二进制打开的大文件怎么快速搜索? 文件有400多M 知道要搜索的大概地址 可以直接跳到那里搜索吗? 用循环查找 要6分钟才能找到
例如
方块圈住的是目标 能不能直接从红色箭头指的那个地方直接往下搜索
------解决思路----------------------
试试下面代码,680M搜索最后面的8个字节,仅需30s
Sub Testt()
Dim iNum As Integer, i As Long, s1 As String, k As Long
Dim j As Long, Byt() As Byte, m As Long, n As Single
iNum = FreeFile() ''
s1 = "e:\电影\黑暗生物\VTS_03_1.VOB"
k = 10000 ''100k
n = Timer ''开始计时
ReDim Byt(k + 7)
Open s1 For Binary As #iNum
''找fe a8 e4 d7 01 89 c3 f8==>65M,大概4s
''找2c,ec,bb,8f,33,fc,3f,1e==>668M,大概30s
For i = 1 To LOF(iNum) Step k
If i + k + 8 > LOF(iNum) Then
ReDim Byt(LOF(iNum) - i)
End If
Get #iNum, i, Byt
''开始比较
For j = 0 To UBound(Byt) - 7
If Byt(j) = &H2C Then
If Byt(j + 1) = &HEC Then
If Byt(j + 2) = &HBB Then
If Byt(j + 3) = &H8F Then
If Byt(j + 4) = &H33 Then
If Byt(j + 5) = &HFC Then
If Byt(j + 6) = &H3F Then
If Byt(j + 7) = &H1E Then
m = i + j
GoTo 100
End If
End If
End If
End If
End If
End If
End If
End If
Next
Next
100:
MsgBox IIf(m > 0, "位置:" & m, "很遗憾!没找到!") & ",耗时>>" & (Timer - n)
Close #iNum