2015-11-17 6 views
0

Я до сих пор сделал сценарий в Visual Basic с помощью программы Visual Studio 2015 Community Edition. То, что я пытаюсь найти, является решением для того, как я могу заказать контент по метке времени. Ниже приведен пример того, как выглядит содержимое файла:Заказ содержимого из файла по дате печати

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] 

Это в основном то, что содержит все файлы журнала. Печать даты и некоторая информация, разделенная пробелом.

До сих пор мой скрипт проверял существование файла, а затем, если файл существует, сохраняет все строки из файла в «Список (строк)».

Когда он нашел все линии и достигнет конца потока, он распечатает «журнал» в richtextbox в том же окне. Я хочу, чтобы это произошло до того, как он распечатает содержимое, заключается в том, что сценарий заказывается по меткам времени, которые теперь хранятся в списке строк от самого старого до самого нового, если это возможно.

Любые предложения?

+0

M Первое предложение для вас - использовать правильную номенклатуру: VB.NET отличается от VBScript (а не Basic, тега, который вы тоже включаете). VB.NET не является языком сценариев и, следовательно, вы не должны использовать слово «скрипт». Моя вторая рекомендация: поделиться тем, что вы пробовали, своим кодом; не нужно говорить об этом (ни показывать его изображение), просто покажите код. Но имейте в виду, что SO не является сервисом write-some-code-for-me; ваш вопрос должен быть достаточно конкретным. – varocarbas

ответ

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 и комментировать, если вам понравится так

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)) 
Смежные вопросы