请教把list转变成数组并处理数据的问题。
程序代码:
Dim a() As String Open (Dir1.Path & "\330000-04.csv") For Input As #1 Do While Not EOF(1) Line Input #1, temp1 If IsNumeric(Mid(temp1, 1, 1)) = True Then a = Split(temp1, ",") List2.AddItem a(3) & "-" & a(4) & "-" & a(5) End If Loop Close #1 DoEvents Dim i As Single, j As Single Dim ListArr() As String Dim Repeat As Boolean ReDim ListArr(0) Dim x() As String Dim y() As String ListArr(0) = List2.List(List2.ListCount - 1) For i = List2.ListCount - 1 To 0 Step -1 x = Split(List2.List(i), "-") Repeat = False For j = 0 To UBound(ListArr) y = Split(ListArr(j), "-") If ("-" & x(1) & "-" & x(2)) = ("-" & y(1) & "-" & y(2)) Then Repeat = True: Exit For Next If Repeat = False Then ReDim Preserve ListArr(UBound(ListArr) + 1) ListArr(UBound(ListArr)) = List2.List(i) End If Next List2.Clear For i = UBound(ListArr) To 0 Step -1 List2.AddItem ListArr(i) Next以上是我的程序里一段处理list2中重复数据的程序,目的是从后向前查找list2中部分字符串重复的,用后面的替换前面重复的。整段程序运行没有错误。
现在我遇到两个问题:
1、list控件有数量限制,大概3万2千多数据后ListCount就变成负数了。但我的数据最多有10万条左右。我想把数据读入内存数组,然后再处理,那么这段程序怎么修改呢?
麻烦哪位能在这个程序的基础上进行修改后再给贴上来,谢谢!
2、整段程序运行时间较长,我大概1万7千条数据,处理了大概好几分钟,主要就是后面处理重复数据的那一段程序耗时太长,至少占用了95%的时间,有没有办法加快处理速度呢?如果要重写,怎么写呢?
附实验数据:
330000-04.rar
(44.79 KB)
[此贴子已经被作者于2019-2-21 23:10编辑过]