需求很簡單,就是A文本刪去B文本中相同的行,且每行只按前11位比較,只要前11位相同就刪整行。之前humanmagic大神提供了如下陳述句,刪十幾萬條記錄速度還行,但上百萬級別的半天跑不出來,我一般是500萬至1000萬級別的。手頭上有一個內部用的vb小程式,兩個500萬級別TXT十分鐘左右就能剔除完成,但功能不太適用,苦于找不到源代碼,無法改造。求哪位牛人有更快的邏輯。
Sub demo()
Dim d As Object, temp As String
Set d = CreateObject("scripting.dictionary")
Open "C:\Users\洗掉集.txt" For Input As #1
Line Input #1, temp
Do Until EOF(1)
Line Input #1, temp
d(Left(temp, 11)) = ""
Loop
Close #1
Open "C:\Users\源資料.txt" For Input As #1
Open "C:\Users\結果.txt" For Output As #2
Line Input #1, temp
Print #2, temp
Do Until EOF(1)
Line Input #1, temp
If Not d.exists(Left(temp, 11)) Then
Print #2, temp
End If
Loop
Close #1, #2
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/197493.html
標籤:VBA
