2017-03-07 50 views
1

我有一個包含超過100,000行數據的日誌文件,只有大約5000條我真正關心的行。其餘的大部分都是像下面這樣的垃圾。它在一列中以大約100K行的形式導入到Excel中,我無法分隔任何東西。我唯一能做的就是搜索所有「M-SEL」,並將其改爲「M-SEL」(與SAC線相同),然後開始給我一些東西劃界和排序。有沒有比我上面列出的更優雅的解決方案(VBA或過濾技術​​?)?高級數據分隔符

00:00:00      M-SEL 802151 - - - is supergroup 
00:00:01     SAC REJECT - - - 800508 508 is not a valid  group id 
+0

如何爲文本文件的結構?每個記錄的行數是否固定並已知?或者*時間*模式是記錄的分隔符? –

+0

每個時間戳一行。所以在Excel中,它看起來像〜100,000行和1列 – eltel2910

+0

好消息是,在不同列之間有「兩個空格」。如果這是真的,解決方案可能很容易。你能證實嗎? –

回答

1

您可以分割多個空格與此宏觀基礎上,列:

Sub importLog() 
    Dim record As String, i As Long, sh As Worksheet, len1 As Long, len2 As Long, ar 
    Set sh = Worksheets.Add 
    Open "C:\SO\mylog.txt" For Input As #1 ' <-- Enter your file's name here 
    Do Until EOF(1) 
     Line Input #1, record 
     Do 
      len1 = Len(record) 
      record = Replace(record, " ", " ") 
      len2 = Len(record) 
     Loop Until len2 = len1 
     If len1 > 1 Then 
      i = i + 1 
      ar = Split(record, " ") 
      sh.Cells(i, 1).Resize(1, UBound(ar) + 1).value = ar 
     End If 
    Loop 
    Close #1 
End Sub 
+1

偉大的作品。感謝您的解決方案。 – eltel2910

+0

@ eltel2910歡迎您。 –