|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Обработка лог-файла на C++ |
|
|
Обработка лог-файла на C++
|
Guest |
Здравствуйте, у меня такая вот просьба... можете боле-менее подробно описать схему открытия .log файлов и чтения из них данных в Borland C++, как это сделать?
|
|
Отправлено: 16:40, 09-03-2004 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать Очень туманно задан вопрос. Ответ такой же туманный: открываешь и читаешь.
Если серьезно, я сейчас пишу класс (на QT), который читает в реал-тайме подновляющиеся клиентские логи. Вся фишка в том, чтобы держать лог-файл открытым на чтение и помнить, где в последний раз был указатель конца файла, чтобы не перечитывать все содержимое заново. Другая фишка в том, что клиенты, пишущие в логи, должны открывать их по "a+" и обязательно пользоваться fflush() . Но это моя специфика. Что конкретно Вас интересует? |
Отправлено: 08:54, 10-03-2004 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Guest |
hasherfrog
если честно, то в cpp я новичок, но мне нужно просто сделать обработчик лог-файлов, а для этого их нужно соответственно считать. Скорее вопрос сейчас у меня встает в том, что как лучше его обработать в Borland C++, при помощи VCL. А насчет обновляемых клиентских логов это ты классно, когда можно будет поюзать первые релизы? |
Отправлено: 09:00, 10-03-2004 | #3 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать Еще уточню вопрос. Речь идет о формате лог-файла? Так это очень специфично. В самом общем (и наиболее распространенном) варианте, лог - просто текстовый файл, в котором каждая строка соответствует сообщению (строка - значит заканчивается "\n". Т.о. считывание лог-файла превращается в простое последовательное считывание строк из файла, вплоть до конца файла. Воспользуйтесь стандартными средствами Borland по работе с файлами/потоками (я давно не писал на Borland C++, все больше QT, ну или MVS, поэтому не помню, как эти классы называются - какой-нибудть CTextSteram), или просто fgets().
Что касается "обработки с помощью VCL", я так подозреваю, тебе нужно просто вывести содержимое в раскрашенном виде? Используй CListView (так, по-моему он называется), где для каждой считанной строки предварительно определи значок и цвет (по содержимому строки). Например, если строка начинается со слова "Warning", покрась ее в оранжевый цвет и прицепи какую нибудь иконку с восклицательным знаком. |
Отправлено: 09:56, 10-03-2004 | #4 |
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
|
Профиль | Сайт | Отправить PM | Цитировать Да, если б конкретнее вопрос задал может я б и не так ответил
|
------- Отправлено: 01:38, 11-03-2004 | #6 |
Guest |
мне надо написать анализатор лога для WinRoute, там логи идут таким макаром:
ip host метод дата запрос код_ответа входящий_траффик Маза в том, что мне надо подсчитать суммарный, по хостам, по йапи и т.д. Я попытался сделать след. образом: в главном меню есть опция "загрузить лог", он его открывает на чтение, я его прогоняю scanf() считаю траффик, вывожу отчет. Ну там есть еще опция "вывести только по одному IP" и идет лист из чекбоксов, как его заполнить... хз. Я не прошу вас за меня все это писать... мне бы было интересно как получше все это делать... может быть в базу данных занести? хотя 250 мегов не хилый размер для Celeron 533. Я в недоумении... помогите плиз. |
Отправлено: 11:15, 11-03-2004 | #7 |
Engrossed by the Void Сообщения: 2229
|
Профиль | Отправить PM | Цитировать Цитата:
Тогда проходим по всему логу (можно скажем на какую-то дату, но это уже нюансы), фиксируем все уникальные ипы и генерируем список из чекбоксов. Кнопка просмотреть будет иметь обработчик который по чекбоксам будет знать какие ипы ему выводить в итоге. На самом деле лучше наверное просто вывести несколько Edit'ов в которые можно ввести один из четырех (или шести) чисел которые составляют ип и рукодствоваться для вывода уже этими данными... |
|
------- Отправлено: 22:20, 11-03-2004 | #8 |
Пользователь Сообщения: 95
|
Профиль | Сайт | Отправить PM | Цитировать ну не знаю... в VC есть специальный "Edit" так и называется IP-Adress
|
------- Отправлено: 00:02, 12-03-2004 | #9 |
Engrossed by the Void Сообщения: 2229
|
Профиль | Отправить PM | Цитировать Хорошо если так (я Delpher), но это нюансы.
|
------- Отправлено: 01:18, 12-03-2004 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|