从超过2000个文本文件中兜售大量数据

时间:2016-06-14 12:59:51

标签: sql database excel

我在从交换机SNMP输出计数端口时遇到问题。我有超过2000个文本文件,如下所示:

 "301SW00134" Model:"WS-C2950G-24-EI"
1
1
1
1
2
1
1
1
2
1
1
2
2
2
2
1
1
1
2
2
1
2
1
1
1
1
1
1

Sum:


"301SW00140" Model:"WS-C2950G-24-EI"
1
2
...

每个txt文件中大约有200个开关。其中一些有24个端口,有48个。每个文件代表不同的小​​时。

例如:

1Jun03_00_01这意味着该文件于6月1日下午3点导出

我想计算每个交换机的每个文件中的所有文件,然后在每个交换机的每个文件中绘制一个UP端口图表。

1表示端口已启动,2表示已关闭。

我尝试过excel,但它并没有顺利进行。

你们知道一些可以完成这项工作的工具吗?我想在一些数据库中导出这些文件然后计数。你怎么看 ?

1 个答案:

答案 0 :(得分:0)

这将使您开始处理单个文件。

  1. 打开FileStream以减少开销
  2. 逐行阅读代码
  3. 如果line包含Model,则将新的SwitchCounter添加到数组

    • SwitchCounter:存储名称,型号和端口数
  4. 
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile ("C:\Users\best buy\Downloads\stackoverflow\test.txt",  1)
    Dim arCounters, intSize
    i = 0
    
    Do Until objFile.AtEndOfStream
    	s = objFile.ReadLine
       	If InStr(s,"Model:") Then
       		Set counter = New SwitchCounter
       		counter.Init s
       		If i = 0 Then 
       			ReDim arCounters(0)
       		Else
       			ReDim Preserve arCounters(i)
       		End If
       		Set arCounters(i) = counter 
       		i = i + 1
       	Else
       		If IsNumeric(s) Then counter.Add s
       	End If
    Loop
    
    For Each counter In  arCounters
    	WScript.Echo counter.name
    Next
    
    Class SwitchCounter
    	Public model
    	Public name
    	Public Count
    	'"301SW00134" Model:"WS-C2950G-24-EI"
    	Public Sub Init(s)
    		s = Replace(s,"Model:", "")
    		s = Replace ( s,Chr(34), "")
    		
    		model = Split(s, " ")(1)
    		name = Split(s, " ")(0)
    	End Sub
    	
    	Public Sub Add(n)
    		Count = Count + CInt(n)
    	End Sub
    End Class