s
sekor695 апреля 2018 г. 17:38

Обработка файла журнала и представление данных

C++, Qt

Здравствуйте, прошу подсказать статьи, что бы выполнить проект, суть которого заключается в том, что бы брать некоторые данные из файла (лога), к примеру, когда была открыта сессия пользователем и когда была закрыта для подсчёта времени его работы.

ejabberd.log-20180312
Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

1
Evgenii Legotckoi
  • 6 апреля 2018 г. 3:26
  • (ред.)

Добрый день! Да как-то нет статей по парсингу логов.

По факту здесь нужно считывать файл построчно, проверять с чего начинается каждая строка и использовать для парсинга регулярные выражения.
Сам файл можно открыть так
QFile file("log.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
    return;

while (!file.atEnd()) {
    QByteArray line = file.readLine();
    process_line(line);
}
Чтобы получить QString из QByteArray, достаточно создать объект QString передав в его конструктор в качестве аргумента объект QByteArray.

Чтобы получить дату из строки
=INFO REPORT==== 2018-03-12 08:05:46 ===
Теоретически достаточно будет считать эту строку и воспользоваться статическим методом QDateTime::fromString() с указанием формата этой строки.
QDateTime timestamp = QDateTime::fromString(line, "=INFO REPORT==== yyyy-MM-dd hh:mm:ss ===");
Что касается второй строки, то там уже нужно будет заморачиваться с регулярными выражениями. Посмотрите в описание документации на QRegularExpression и QRegExp

    Комментарии

    Только авторизованные пользователи могут публиковать комментарии.
    Пожалуйста, авторизуйтесь или зарегистрируйтесь
    AD

    C++ - Тест 004. Указатели, Массивы и Циклы

    • Результат:50баллов,
    • Очки рейтинга-4
    m
    • molni99
    • 26 октября 2024 г. 8:37

    C++ - Тест 004. Указатели, Массивы и Циклы

    • Результат:80баллов,
    • Очки рейтинга4
    m
    • molni99
    • 26 октября 2024 г. 8:29

    C++ - Тест 004. Указатели, Массивы и Циклы

    • Результат:20баллов,
    • Очки рейтинга-10
    Последние комментарии
    i
    innorwall14 ноября 2024 г. 19:42
    Как Копировать Файлы в Linux If only females relatives with DZ offspring were considered these percentages were 23 order priligy online uk
    i
    innorwall14 ноября 2024 г. 17:09
    Qt/C++ - Урок 068. Hello World с использованием системы сборки CMAKE в CLion ditropan pristiq dosing With the Yankees leading, 4 3, Rivera jogged in from the bullpen to a standing ovation as he prepared for his final appearance in Chicago buy priligy pakistan
    i
    innorwall14 ноября 2024 г. 12:05
    EVILEG-CORE. Использование Google reCAPTCHA 2001; 98 29 34 priligy buy
    i
    innorwall14 ноября 2024 г. 12:00
    PyQt5 - Урок 007. Работаем с QML QtQuick (Сигналы и слоты) priligy 30mg Am J Obstet Gynecol 171 1488 505
    Сейчас обсуждают на форуме
    i
    innorwall14 ноября 2024 г. 11:39
    добавить qlineseries в функции priligy amazon canada 93 GREB1 protein GREB1 AB011147 6
    i
    innorwall11 ноября 2024 г. 18:55
    Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
    9
    9Anonim25 октября 2024 г. 16:10
    Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
    ИМ
    Игорь Максимов3 октября 2024 г. 11:05
    Реализация навигации по разделам Спасибо Евгений!

    Следите за нами в социальных сетях