Форум программистов, компьютерный форум CyberForum.ru

Парсер лога с использованием boost::regex - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ ввод двумерного массива из файла http://www.cyberforum.ru/cpp-beginners/thread381519.html
как осуществить ввод двумерного массива из файла? как должны размещаться значения в файле? вот такие два вопросика :) заранее всем откликнувшимся спасибо большое:friends:
C++ Помогите написать код программы с использованием функции!!! Реализовать функцию, которая переписывает элементы входного массива в обратном порядке. На вход функция получает указатель на первый элемент массива, а также его размерность. Задано вещественный массив размерности 3n, который делится на три подмассива. Используя функцию, для каждого из подмассивов, преобразовать входной массив Реалізувати функцію, що переписує елементи вхідного масиву у... http://www.cyberforum.ru/cpp-beginners/thread381517.html
C++ Длина отрезка по координатам вершин
разработать функцию f(x1,y1,x2,y2),каторая вычесляет длину отрезка по координатам вершин (x1,y1) и (x2,y2), и функцию t(a,b,c),которая проверяет, существует ли треугольник с длинами сторон a,b,c/С помощью данных функйий проверитьБможно ли построить треугольник по трем заданным точкам на плоскости.
C++ нужно вывести самое длинное слово и его порядковый номер в исходной строке.
Здраствуйте,мне нужно вывести самое длинное слово и его порядковый номер в исходной строке.Спасибо
C++ Двумерные массивы. Процедуры и функции http://www.cyberforum.ru/cpp-beginners/thread381506.html
нужер зделать программку, помогите если сможете: В матрице А (n х n) определите количество строк, элементы ко- торой образуют арифметическую прогрессию. Используйте подпро- грамму проверки строки.
C++ Как подсчитать вероятность появления каждого символа в тексте. Как подсчитать вероятность появления каждого символа в тексте. Например дана предложение: The method was attributed to Fano, who later published it as a technical report. Как найти вероятность? Каждого слово отдельно или все предложение вместе? И вообще как она считается по определлной формуле или как? подробнее

Показать сообщение отдельно
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
10.11.2011, 23:20     Парсер лога с использованием boost::regex
lizard, смотрите:

C++
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <iostream>
#include <string>
#include <boost/regex.hpp>
#include <fstream>
 
using namespace std;
const int BUFSIZE = 10000;
 
int main()
{
 
    char buf[BUFSIZE];
    std::string name, iname, diagnosis;
 
    static const boost::regex infected( "(ALERT:.*?.C:.tmp.*?)+(([a-zA-Z0-9]+\\.)+[a-zA-Z]{2,4})+(.<<<.+[a-zA-Z_])" );
    static const boost::regex healthy( "(^C:.tmp.*?)+(([a-zA-Z0-9]+\\.)+[a-zA-Z]{2,4})" );
 
    ifstream in;
    in.open( "C:\\log\\avira_log.txt" );
 
 
    while( !in.eof() )
    {
        in.getline( buf, BUFSIZE - 1 );
        std::string s = buf;
        boost::smatch m;
 
        if( boost::regex_search( s, m, healthy ) ) 
        {
            name.assign( m[2] );
            cout << "Name: " << name << "  diagnosis:";
            
            // infected files
 
            while( !in.eof() )
            {
                in.getline( buf, BUFSIZE - 1 );
                std::string c = buf;
 
 
                if( boost::regex_search( c, m, infected ) ) 
                {
 
                    iname.assign( m[2] );
                    diagnosis.assign( m[4] );
 
                    if( name == iname )
                        cout <<  diagnosis << endl;
                    else
                        cout << "OK" << endl;
                } // if( boost::regex_search( c, m, infected ) ) 
                
            } // while( !in.eof() )
            
/*-------------------> вот тут уже in.eof() == true <--------------------------------------------- */
            
        } // if( boost::regex_search( s, m, healthy ) )
        
    }// while( !in.eof() )
 
    system( "pause" );
 
}
Код ваш, только оформление подкантовал.
 
Текущее время: 16:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru