到目前为止,我已经使用Visual Studio 2015 Community Edition程序在Visual Basic中创建了一个脚本。 我正在努力寻找的是一个解决方案,我可以通过时间戳来订购内容。以下是文件内容的示例:
dd.mm.yyyy hh.mm.ss text to end of line here
01.10.2015 06.50.43 Somebody tried to log into [username] with an incorrect password from [ip]
这基本上是所有日志文件包含的内容。日期戳和一些由空格分隔的信息。
到目前为止,我的脚本检查文件是否存在,如果文件存在,则将文件中的所有行存储到“List(Of Strings)”中。
当找到所有行并到达流的末尾时,它会在同一窗口的richtextbox中打印出“log”。在打印出内容之前我想要发生的是,脚本按时间戳排序,如果可能的话,现在存储在从最旧到最新的字符串列表中。
有什么建议吗?
答案 0 :(得分:0)
一个简单但丑陋的解决方案可能
lst_string.Sort(Function(x, y) DateTime.ParseExact(x.Substring(0, 19), "dd.MM.yyyy HH.mm.ss", System.Globalization.CultureInfo.InvariantCulture).CompareTo(DateTime.ParseExact(y.Substring(0, 19), "dd.MM.yyyy HH.mm.ss", System.Globalization.CultureInfo.InvariantCulture)))
但是你可能最好为你的inputdata创建一个由datetime和comment分隔的类,如果你愿意的话
Dim ld As New LoginData
ld.dateLogedIn = DateTime.ParseExact(lst_string(0).Substring(0, 19), "dd.MM.yyyy HH.mm.ss", System.Globalization.CultureInfo.InvariantCulture)
ld.commentary = lst_string(0).Substring(20)
以这种方式更容易为您添加更多参数,如用户名或IP,并相应地进行排序
lst_newList.Sort(Function(x, y) x.dateLogedIn.CompareTo(y.dateLogedIn))