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

Извлечение нужной информации из строки - C++

Восстановить пароль Регистрация
 
dima77790
1 / 1 / 0
Регистрация: 06.10.2013
Сообщений: 12
09.04.2014, 00:34     Извлечение нужной информации из строки #1
Есть стока следующего вида:
\\\\?\\usbstor#disk&ven_ufd_2.0&prod_silicon-power16g&rev_pmap#12021051046e6c21d00cf3b0461&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}
информация которую нужно вытащить выделена красным цветом.
длинна нужной информации меняется, остальные символы в строке присутствую постоянно.

Помогите извлечь инфу в отдельные строковые переменные.
(очень не хочется писать процедуру в которой все будет разбираться посимвольно )
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2014, 00:34     Извлечение нужной информации из строки
Посмотрите здесь:

C++ Удалить папку в нужной директории
C++ Поиск нужной строки во внешнем файле ( блокнот )
C++ Структуры данных "Книги", вывод нужной информации
Извлечение информации из BMP файла C++
C++ Как эффективнее всего реализовать считывание нужной строки?
C++ Считывание из файла в нужной кодировке
C++ Взять все числа с нужной строки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MegaCoder
6 / 2 / 1
Регистрация: 10.03.2014
Сообщений: 17
09.04.2014, 00:39     Извлечение нужной информации из строки #2
загугли "regex", "регулярные выражения"
IrineK
Заблокирован
09.04.2014, 00:51     Извлечение нужной информации из строки #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Здесь выпиливаем то, что не нужно:

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
#include <iostream>
#include <sstream>
using std::cin;
using std::cout;
using std::string;
 
 
int main()
{   string s = "\\\\?\\usbstor#disk&ven_ufd_2.0&prod_silicon-power16g&rev_pmap#12021051046e6c21d00cf3b0461&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}";
    string everywhere[] = {"\\\\?\\usbstor#disk&ven_", "&prod_", "g&rev_pmap#", "&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}"};
    
    int N = 4, i = -1, found;
 
    while (++i < N)
    {   found = s.find (everywhere[i]);
        s.erase (found, everywhere[i].length());
        s.insert (found, 1, ' ');
    }
 
    cout << s;
    
    cin.sync(); cin.get();
    return 0;
}
В отдельные строковые переменные - можно и самому ).
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.04.2014, 02:45     Извлечение нужной информации из строки #4
Нужно добавить, что делать, если не найдено нужное:
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
#include <iostream>
#include <string>
#include <vector>
 
int main()
{   
    std::string s = "\\\\?\\usbstor#disk&ven_ufd_2.0&prod_silicon-power16g&rev_pmap#12021051046e6c21d00cf3b0461&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}";
    std::string find[] = {"\\\\?\\usbstor#disk&ven_", "&prod_", "g&rev_pmap#", "&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}"};
    
    
    std::vector <std::string> v;
    int i = 0;
    while (i < 3)
    {   
        std::string temp;
        int ind = s.find (find[i]);
        if (ind != -1)
        {
            int end = s.find (find[i + 1]);
            if (end != - 1)
            {
                int begin = ind + find[i].length();
                int size = end - begin;
                v.push_back(std::string(s, begin, size));
            }
        }
        ++i;
    }
 
    std::cin.get();
    return 0;
}
IrineK
Заблокирован
09.04.2014, 12:56     Извлечение нужной информации из строки #5
Цитата Сообщение от alsav22 Посмотреть сообщение
что делать, если не найдено нужное
И что же делать? Искать? Выводить инфу?

И что есть "нужное" - кво (3) или определенный контент?
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.04.2014, 21:23     Извлечение нужной информации из строки #6
Цитата Сообщение от IrineK Посмотреть сообщение
И что же делать? Искать? Выводить инфу?
И что есть "нужное" - кво (3) или определенный контент?
Вопросы к ТС (?).
IrineK
09.04.2014, 23:04     Извлечение нужной информации из строки
  #7

Не по теме:

Цитата Сообщение от alsav22 Посмотреть сообщение
Вопросы к ТС (?).
Пожалуй.
Скорее, мысли вслух.

Yandex
Объявления
09.04.2014, 23:04     Извлечение нужной информации из строки
Ответ Создать тему
Опции темы

Текущее время: 18:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru