none
求助?日志统计 RRS feed

  • 问题

  • 题目如下:
    有一日志,内容如下:
    ...................
    时间,行为,终端1
    时间,行为,终端1
    时间,行为,终端1
    时间,行为,终端1
    ...................
    时间,行为,终端2
    时间,行为,终端1
    时间,行为,终端3
    时间,行为,终端1
    ...................

    行为只有两种状态,加入和删除
    现在想读取时间,行为,终端的语句,来判断各终端的状态?程序怎么写好?
            dim sr as new streamreader =new streamReader(log)
            If sr IsNot Nothing Then
                Do Until sr.EndOfStream 
                    Dim line As String = sr.ReadLine()
                    If line <> "" Then
                        If line Like skey1 Or line Like skey2 Then      'skey1和skey2为加入和删除

                            .....这部分怎么写
                        End If
                    End If
                Loop
            End If

    2012年9月7日 5:51

答案

  • 你的程序是VS2008(net3.5开发的吗)?是的话请用LINQ:

    Module Module1
    
        Sub Main()
            Dim values As String() = File.ReadAllLines("c:\try.txt", encoding:=Encoding.Default
                                                       )
            Dim result = From i In
                        (From item In values
                                Select New With
                                       {
                                           .DateTime = item.Split(",")(0),
                                             .Kind = item.Split(",")(1),
                                            .PortName = item.Split(",")(2)
                                       })
                              Group i By i.PortName Into Group
                              Select New With
                                     {
                                         .PortName = PortName, .PortState = Group
                                     }
    
            '测试
            For Each item In result
                Console.WriteLine("端口名称:" & item.PortName)
                Console.WriteLine("状态:")
                For Each sitem In item.PortState
                    Console.WriteLine(sitem.DateTime & "<=========>" & sitem.Kind)
                Next
                Console.WriteLine()
            Next
        End Sub
    End Module


    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处


    2012年9月7日 6:46
    版主

全部回复