2017-03-07 48 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欢迎您。 –