Board logo

标题: [问题求助] 【已解决】VBS:代码中如何添加 删除重复数据 的语句 [打印本页]

作者: 思想之翼    时间: 2022-10-24 07:23     标题: 【已解决】VBS:代码中如何添加 删除重复数据 的语句

本帖最后由 思想之翼 于 2023-3-3 14:37 编辑

下列代码输出的数据,未删重。
现欲删除重复数据(重复数据仅保留一个),如何添加代码?
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. For f = 1 to 100
  3. For z = 1 to 100
  4. Set file = fso.OpenTextFile("e:\统计1\" & Right("00" & f, 3) & "\" & "1_" & Right("00" & z, 3) & ".txt")  
  5. m = 4 : Max = 0    'm=总列数,Max=输出最大行数
  6. ReDim arIn(m-1) : ReDim arOut(m-1)
  7. Do Until file.AtEndOfStream
  8.    strLine = RegEx(file.ReadLine)
  9.    If strLine <> "" Then
  10.       ReDim PreServe ar(m-1,n)
  11.       For i = 0 to m-1
  12.          arIn(i) = arIn(i) & "$" & Split(strLine)(i) & " "
  13.          ar(i,n) = arIn(i)
  14.       Next
  15.       n = n + 1
  16.    End If
  17. Loop
  18. For i = 0 to m-1
  19.    For j = CLng(n/2) to 0 step -1
  20.       ar1 = Split(ar(i,n-1),ar(i,j))
  21.       If UBound(ar1) > 1 Then
  22.          For k = 1 to UBound(ar1) - 1
  23.             a = UBound(Split(ar1(k))) - 1
  24.             b = UBound(Split(ar(i,j))) - 1
  25.             If a >= 0 Then
  26.                arOut(i) = arOut(i)&Mid(Split(ar1(k))(a),2)&" "
  27.             Else
  28.                arOut(i) = arOut(i)&Mid(Split(ar(i,j))(b),2)&" "
  29.             End If
  30.          Next
  31.          Exit For
  32.       End If
  33.    Next
  34.    If UBound(Split(arOut(i))) > Max Then Max = UBound(Split(arOut(i)))
  35. Next
  36. For i = 0 to Max - 1
  37.    For j = 0 to m-1
  38.       If UBound(Split(arOut(j))) >= i Then
  39.          strOut = strOut & Split(arOut(j))(i) & vbTab
  40.       Else strOut = strOut & vbTab
  41.       End If
  42.    Next
  43.    strOut = Left(strOut,Len(strOut)-1) & vbCrLf
  44. Next
  45. fso.OpenTextFile("e:\统计2\" & Right("00" & f, 3) & "\" & "特例_" & Right("00" & z, 3) & ".txt",2,True).Write strOut
  46. strOut = "" : n = "0"
  47. Next
  48. Next
  49. CreateObject("Wscript.Shell")
  50. Function RegEx(strLine)
  51.    Set re = New RegExp
  52.    re.Pattern = "\s+"
  53.    re.Global = True
  54.    RegEx = Trim(re.Replace(strLine," "))
  55. End Function
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2