Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Обработка лог-файла на C++

Ответить
Настройки темы
Обработка лог-файла на C++

Аватара для Guest

Guest



Профиль | Цитировать


Здравствуйте, у меня такая вот просьба... можете боле-менее подробно описать схему открытия .log файлов и чтения из них данных в Borland C++, как это сделать?

Отправлено: 16:40, 09-03-2004

 

Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


Очень туманно задан вопрос. Ответ такой же туманный: открываешь и читаешь.
Если серьезно, я сейчас пишу класс (на QT), который читает в реал-тайме подновляющиеся клиентские логи. Вся фишка в том, чтобы держать лог-файл открытым на чтение и помнить, где в последний раз был указатель конца файла, чтобы не перечитывать все содержимое заново. Другая фишка в том, что клиенты, пишущие в логи, должны открывать их по "a+" и обязательно пользоваться fflush() . Но это моя специфика. Что конкретно Вас интересует?

Отправлено: 08:54, 10-03-2004 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для Guest

Guest


Профиль | Цитировать


hasherfrog
если честно, то в cpp я новичок, но мне нужно просто сделать обработчик лог-файлов, а для этого их нужно соответственно считать. Скорее вопрос сейчас у меня встает в том, что как лучше его обработать в Borland C++, при помощи VCL.
А насчет обновляемых клиентских логов это ты классно, когда можно будет поюзать первые релизы?

Отправлено: 09:00, 10-03-2004 | #3


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


Еще уточню вопрос. Речь идет о формате лог-файла? Так это очень специфично. В самом общем (и наиболее распространенном) варианте,  лог - просто текстовый файл, в котором каждая строка соответствует сообщению (строка - значит заканчивается "\n". Т.о. считывание лог-файла превращается в простое последовательное считывание строк из файла, вплоть до конца файла. Воспользуйтесь стандартными средствами Borland по работе с файлами/потоками (я давно не писал на Borland C++, все больше QT, ну или MVS, поэтому не помню, как эти классы называются - какой-нибудть CTextSteram), или  просто fgets().
Что касается "обработки с помощью VCL", я так подозреваю, тебе нужно просто вывести содержимое в раскрашенном виде? Используй CListView (так, по-моему он называется), где для каждой считанной строки предварительно определи значок и цвет (по содержимому строки).  Например, если строка начинается со слова "Warning", покрась ее в оранжевый цвет и прицепи какую нибудь иконку с восклицательным знаком.

Отправлено: 09:56, 10-03-2004 | #4


Аватара для Guest

Guest


Профиль | Цитировать


Я сейчас тоже пишу анализатор лога (VC 6.0) и запись его в html
делается вроде не сложно.
например мне нужно цветом выделить [user: guest]
я ищу '[', и при условии, что, например,  следующий символ 'u' а символ+5 == ':' я считываю в память строку, пока не встречу ']'

короче,
что то типа:

if(szFileBuf[dwCurrentByte] == '[' && szFileBuf[dwCurrentByte+3] == '/')
{
int tiCount = 0;
while(szFileBuf[dwCurrentByte] != ']')
{
szTime[tiCount] = szFileBuf[dwCurrentByte];
dwCurrentByte++; tiCount++;
}


очень приближенно....

есть наверное и другие методы, но мне влом было думать как сделать и я решил сделать немного по-детски
а вообще если ты на билдере пишешь, есть такие вещи как TRegExp - с помощью этого можешь пропарсить любую строку.

Отправлено: 01:15, 11-03-2004 | #5


Пользователь


Сообщения: 95
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Да, если б конкретнее вопрос задал может я б и не так ответил

-------
Вся наша жизнь - игра.... вот только б не повисла...


Отправлено: 01:38, 11-03-2004 | #6


Аватара для Guest

Guest


Профиль | Цитировать


мне надо написать анализатор лога для  WinRoute, там логи идут таким макаром:

ip host метод дата запрос код_ответа входящий_траффик

Маза в том, что мне надо подсчитать суммарный, по хостам, по йапи и т.д.
Я попытался сделать след. образом:
в главном меню есть опция "загрузить лог", он его открывает на чтение, я его прогоняю scanf() считаю траффик, вывожу отчет. Ну там есть еще опция "вывести только по одному IP" и идет лист из чекбоксов, как его заполнить... хз.
Я не прошу вас за меня все это писать... мне бы было интересно как получше все это делать... может быть в базу данных занести? хотя 250 мегов не хилый размер для Celeron 533.

Я в недоумении... помогите плиз.

Отправлено: 11:15, 11-03-2004 | #7


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Цитата:
вывести только по одному IP
Имеется ввиду вывести суммарный траффик для конкретного ипа?
Тогда проходим по всему логу (можно скажем на какую-то дату, но это уже нюансы), фиксируем все уникальные ипы и генерируем список из чекбоксов. Кнопка просмотреть будет иметь обработчик который по чекбоксам будет знать какие ипы ему выводить в итоге.
На самом деле лучше наверное просто вывести несколько Edit'ов в которые можно ввести один из четырех (или шести) чисел которые составляют ип и рукодствоваться для вывода уже этими данными...

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 22:20, 11-03-2004 | #8


Пользователь


Сообщения: 95
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


ну не знаю... в VC есть специальный "Edit" так и называется IP-Adress

-------
Вся наша жизнь - игра.... вот только б не повисла...


Отправлено: 00:02, 12-03-2004 | #9


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Хорошо если так (я Delpher), но это нюансы.

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 01:18, 12-03-2004 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Обработка лог-файла на C++

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Обработка ключей запуска CMD- файла volk1234 Скриптовые языки администрирования Windows 28 20-12-2009 21:46
Получение и обработка информации из текстового файла ya158 AutoIt 3 11-09-2009 01:24
Вопрос - лог фаил banbug Защита компьютерных систем 2 27-07-2008 20:47
Обработка формы ][alter Вебмастеру 10 18-12-2007 00:18
MSFT SQL Server - SQL 2005 уменьшение лог файла Flick Программирование и базы данных 6 16-04-2007 18:31




 
Переход