Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 62
1

Анализатор лога, выборка нужных значений в диапазоне дат

20.05.2014, 10:22. Показов 1148. Ответов 9
Метки нет (Все метки)

Доброго времени суток!

Есть лог-файл с парой сотен тысяч строк следующего вида:

Кликните здесь для просмотра всего текста
[08.12.2011 16:24:43] RPO10702734_619520111208_000001.txt......................... ....................ok
[14.12.2011 11:35:15] BOS1_RBN16015762_262520111117_010082.vrb.................... ....................ok
[14.12.2011 11:35:16] BOS1_RBN16015762_262520111117_010082.vrb.................... ....................ok
[14.12.2011 11:35:16] BOS1_RBN16015762_262520111117_010085.vrb.................... ....................ok
[15.12.2011 09:31:02] KWTFCB_BOS1_RBN16015762_262520111117_009954.TXT............. ....................ok
[15.12.2011 09:31:02] KWTFCB_BOS1_RBN16015762_262520111117_009957.TXT............. ....................ok
[15.12.2011 09:31:02] KWTFCB_BOS1_RBN16015762_262520111117_010082.TXT............. ....................ERROR!
[15.12.2011 09:31:03] KWTFCB_BOS1_RBN16015762_262520111117_010085.TXT............. ....................ERROR!
[16.10.2012 11:11:37] RPO10702734_263620121015_003363.VRB......................... ....................ok
[16.10.2012 11:11:37] RPO10702734_263620121015_003380.VRB......................... ....................ok
[16.10.2012 16:24:45] ROO10702734_263220121016_007594.txt......................... ....................ok
[16.10.2012 16:24:45] ROO10702734_263220121016_007595.txt......................... ....................ok
[22.07.2013 09:32:13] KWTFCB_BOS1_RPO10702734_263220130717_010889.TXT............. ....................ok
[22.07.2013 09:32:13] KWTFCB_BOS1_RPO10702734_263220130717_010931.TXT............. ....................ok
[22.07.2013 09:32:14] KWTFCB_BOS1_RPO10702734_263220130717_010946.TXT............. ....................ok
[22.07.2013 09:32:14] KWTFCB_BOS1_RPO10702734_263220130717_010947.TXT............. ....................ok

Необходимо:

1. Выбрать любой из типов файлов(.txt, .vrb) в диапазоне дат
2. Отсечь ненужные символы, чтобы привести к виду:

Кликните здесь для просмотра всего текста
BOS1_RBN16015762_262520111117_010082.vrb
BOS1_RBN16015762_262520111117_010082.vrb
или
KWTFCB_BOS1_RBN16015762_262520111117_009957.TXT
KWTFCB_BOS1_RPO10702734_263220130717_010947.TXT


4. Вывести количество обработанных строк в Label
5. Сохранить результат в файл.

Визуальная форма, например такая:

[Вложение не существует или не указан идентификатор (номер)]

Наведите на мысль, как лучше реализовать данную тему и учитывая объём обрабатываемой информации, какое решение будет более скоростным.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2014, 10:22
Ответы с готовыми решениями:

Выборка в диапазоне дат
Добрый день, извиняюсь, если вопрос глупый: Подключаюсь к access бд через DataSet, в commandText...

Выборка записей из БД в диапазоне дат
здравствуйте! столкнулся с проблемой - не могу сделать так чтобы в DataGridView2 выводилась дата...

Выборка записей в SQLite в диапазоне дат
Всем привет. Запрос вот такого характера к SQLite выводит записи только по дню а не по всей дате....

Выборка записей из БД Access в диапазоне дат
У меня есть на форме combobox1,combobox2 и combobox3. На первом комбобоксе я выбираю поставщика, а...

9
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 62
20.05.2014, 11:09  [ТС] 2
Форма:

Анализатор лога, выборка нужных значений в диапазоне дат
0
Почетный модератор
21322 / 9057 / 1082
Регистрация: 11.04.2010
Сообщений: 11,014
20.05.2014, 11:16 3
archimeds, каких размеров может достигать файл?

По теме - тут имхо, даже регулярки можно не использовать, достаточно одного Split, он очень шустрый.

Если можно, вышлите файл целиком
0
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 62
20.05.2014, 11:33  [ТС] 4
Памирыч, Файл наполняется с 2011 года, имеет порядка 200000 строк и весит 4.5 мб, в день записывается максимум 200 строк.
Split сейчас читаю в MSDN, но пока ума не хватает как организовать работу с диапазоном.
0
Почетный модератор
21322 / 9057 / 1082
Регистрация: 11.04.2010
Сообщений: 11,014
20.05.2014, 11:37 5
archimeds, я погорячился немного что одного сплита хватит.
Уже накидываю пример
0
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 62
20.05.2014, 11:44  [ТС] 6
Очень оперативно, спасибо.
0
Почетный модератор
21322 / 9057 / 1082
Регистрация: 11.04.2010
Сообщений: 11,014
20.05.2014, 12:07 7
Лучший ответ Сообщение было отмечено archimeds как решение

Решение

Работает довольно шустро.
Для рабочего лога код таков:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    Structure Data
        Dim _Date As Date
        Dim _Cont As String
    End Structure
 
    Dim Lst As New List(Of Data)
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Lines() As String = IO.File.ReadAllLines("C:\file(1).log")
        For Each Line As String In Lines
            Dim Tmp As New Data With {._Date = Line.Split()(0).Replace("[", ""), ._Cont = Regex.Split(Line.Split()(2), "\.{2,}")(0)}
            Lst.Add(Tmp)
        Next
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ListBox1.Items.Clear()
        For Each Tmp As Data In Lst
            If Tmp._Cont.ToUpper.EndsWith(ComboBox1.Text.ToUpper) Then
                If Tmp._Date > DateTimePicker1.Value.AddDays(-1) And Tmp._Date < DateTimePicker2.Value Then
                    ListBox1.Items.Add(Tmp._Cont & " (" & Tmp._Date & ")")
                End If
            End If
        Next
    End Sub
Не забудьте импортировать:
VB.NET
1
Imports System.Text.RegularExpressions
1
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 62
20.05.2014, 12:30  [ТС] 8
Памирыч, А для ListBox есть какието доп.настройки? Почему-то он не заполняется значениями.
0
Почетный модератор
21322 / 9057 / 1082
Регистрация: 11.04.2010
Сообщений: 11,014
20.05.2014, 12:41 9
archimeds, в нем никаких настроек.
Есть настройка у DateTimePicker
У него Format = Short
И в комбобоксе у меня написано просто TXT, а не *.TXT, как у Вас
Миниатюры
Анализатор лога, выборка нужных значений в диапазоне дат  
0
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 62
20.05.2014, 12:53  [ТС] 10
Потрясающе Памирыч, абсолютно то, что и требуется, благодарю за оперативность и точный пример.
p.s. Работает очень быстро.
0
20.05.2014, 12:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2014, 12:53

Выборка записей в SQLite в диапазоне дат
Здравствуйте, есть таблица создается так CREATE TABLE incoming (ID INTEGER PRIMARY KEY,date...

Linq - выборка нужных значений из массива в другой массив
Никак не могу до конца понять логику Linq. Помогите с кодом. Например есть массив 1,2,3,4,5. Как с...

Выборка значений в промежутке дат ADOQuery, TimeDataPicker, Delphi
Не получается выборка по заданному диапазону дат. Необходимо выводить записи с датами между...

Диапазон, поиск значений в заданном диапазоне.Выборка
Дана таблица со 110 числами, и таблица (из трех колонок), в которой записаны границы диапазонов, их...

Анализатор лога доступа веб-сервера (apache)
ЗаданиеНа входе лог, имя файла задано с командной строки. Лог это текстовый файл, в...

Простой Syslog сервер-анализатор лога для устройств Cisco
Всем привет! Есть идея написать простую в использовании софтину с интуитивно понятным интерфейсом,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru