Как распарсить строку? |
Здравствуйте, гость ( Вход | Регистрация )
Как распарсить строку? |
RazrFalcon |
28.5.2011, 19:35
Сообщение
#1
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Есть QString. Туда копируется вывод консольной утилиты через QProcess. Мне нужно в этой длинной строке найти, в моем случае, частоту ЦП.
Как это реализовать? В голову приходит только разбиение по словам, ака split(" "), а затем каждое слово в QStringList сравнивать на наличие GHz/MHz и тд. Но это будет долговато. Можно через remove(); удалить все до частоты, и после, но это не очень точно, так как теоретически, значения до/после могут изменится. Какой вариант самый оптимальный? Скорость работы критична. PS: нужен аналог grep Сообщение отредактировал RazrFalcon - 28.5.2011, 19:37 |
|
|
RazrFalcon |
28.5.2011, 22:01
Сообщение
#2
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Это я к примеру написал.
Суть в том, что в тексте есть <тут текст> 1.90GHz <тут текст>. Мне нужно вычленить это значение. При том, что то, что до и то что после - мне известно, и оно постоянно. Пример: Раскрывающийся текст $ cpufreq-info cpufrequtils 008: cpufreq-info © Dominik Brodowski 2004-2009 Report errors and bugs to cpufreq@vger.kernel.org, please. analyzing CPU 0: driver: powernow-k8 CPUs which run at the same hardware frequency: 0 1 CPUs which need to have their frequency coordinated by software: 0 1 maximum transition latency: 109 us. hardware limits: 800 MHz - 1.90 GHz available frequency steps: 1.90 GHz, 1.80 GHz, 1.60 GHz, 800 MHz available cpufreq governors: conservative, performance current policy: frequency should be within 800 MHz and 1.90 GHz. The governor "performance" may decide which speed to use within this range. current CPU frequency is 1.90 GHz. analyzing CPU 1: driver: powernow-k8 CPUs which run at the same hardware frequency: 0 1 CPUs which need to have their frequency coordinated by software: 0 1 maximum transition latency: 109 us. hardware limits: 800 MHz - 1.90 GHz available frequency steps: 1.90 GHz, 1.80 GHz, 1.60 GHz, 800 MHz available cpufreq governors: conservative, performance current policy: frequency should be within 800 MHz and 1.90 GHz. The governor "performance" may decide which speed to use within this range. current CPU frequency is 1.90 GHz. Отсюда нужно выдрать частоту: current CPU frequency is 1.90 GHz. Пока что только так работает:
На счет скорости не знаю. Интересует более красивое/рациональное решение. Сообщение отредактировал RazrFalcon - 28.5.2011, 23:40 |
|
|
Текстовая версия | Сейчас: 23.11.2024, 5:29 |