高分悬赏:VB的text中如何提取特征行

来源:百度知道 编辑:UC知道 时间:2024/06/10 15:01:05
如下text1中的内容是
【第00007行】45
【第00008行】06
【第00123行】39
【第00044行】38
【第00345行】26
【第00012行】13
text2中的内容是
06
38
13
然后点击按钮在text3中显示
【第00008行】06
【第00044行】38
【第00012行】13
需要完整的代码,不然会看不懂,谢谢了。
我的数据量很大,有相同的也要提取出来,比如:text1中的内容是
【第00007行】45
【第00008行】06
【第00123行】39
【第00044行】38
【第00345行】06
【第00012行】38
【第00049行】11
text2中的内容是
06
38
11
然后点击按钮text3中就会显示:
【第00008行】06
【第00345行】06
【第00044行】38
【第00012行】38
【第00049行】11
需要能运行的代码,麻烦再修改一下。大概有1万行。

如果你测试不通过,基本上属于你数据上的问题,应该是和你这儿描述的有差别,你新建一个工程,贴如下代码试试,3万行也是豪秒级的
Option Explicit

Private Sub Command1_Click()

Dim arrSou, arrFind
Dim i As Long, j As Long, k As Long
Dim tmp

arrSou = Split(Text1, vbCrLf) '源字符分组
arrFind = Split(Text2, vbCrLf) '要搜索的字符分组

For i = 0 To UBound(arrFind) '循环要探索的字符
For j = k To UBound(arrSou) '在源字符数组中搜索
'找出源字符】后面与要搜索的字符相同的值
If Mid(arrSou(j), InStrRev(arrSou(j), "】") + 1) = arrFind(i) Then
'下面这个过程是将符合条件的数据移动到数组的前面
'这样下次搜索就可以不断缩小搜索范围
tmp = arrSou(j)
arrSou(j) = arrSou(k)
arrSou(k) = tmp
k = k + 1
End If
Next j
Next i
If k > 0 Then
ReDim Preserve arrSou(k - 1)
T