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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.65
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
#1

Парсинг файла - C++

06.07.2012, 21:04. Просмотров 3227. Ответов 21
Метки нет (Все метки)

Вот открываю через FILE*, файл ввида

"test"
{
"test1" "test1_1"
"test2" "test2_1"
"test3" "test3_1"
"test4" "test4_1"
}

как мне взять только строку test2_1 (она все время разная),
или просто удалить первые 2 строки, потом 1 строку оставить а остальные удалить,
и затем удалить все до 3-его символа " , а далее удалить последний символ

вот как код написать я незнаю
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2012, 21:04     Парсинг файла
Посмотрите здесь:

Парсинг файла - C++
Загружаю файл в string, строка в файле только одна, так что масив ненужен. В чем задача стоит? Содержимое файла такое: {"параметр_1":...

Парсинг строк из файла - C++
Имеется файл с содержанием 3 Text Text2 Text3

Парсинг файла .cnf - C++
Доброго времени суток, уважаемые форумчане. Помогите, пожалуйста, конкретным кодом к вот такой подзадаче: нужно прочитать .cnf файл -...

typdef struct + парсинг из файла - C++
Собственно такая задача : Надо создать структуру, на основе чтения из файла. От вас готового когда не прошу, если можно - просты ссылки...

Парсинг из файла и суммирование столбца - C++
В файле "data.txt" записаны 2 столбца чисел. Написать функцию, которая находит сумму чисеол во 2 столбце. (столбцы разделены ' ') Заранее...

Парсинг файла игнорирует числа - C++
Всем добрый день. Пытаюсь прочитать данные из файла 3D модели в формате OBJ. bool L_ObjData::LoadFromFile(string FileName) { ...

Парсинг текстового файла в map - C++
Здравствуйте! Подскажите, пожалуйста, как парсить текстовый файл в map. Например, есть файл, в котором записано следующее: 1 a 2 b 3...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Петррр
5946 / 3383 / 336
Регистрация: 28.10.2010
Сообщений: 5,927
06.07.2012, 22:30     Парсинг файла #21
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
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>
#include <map>
#include <cctype>
 
void trim(std::string& str)
{
    while (isspace(*str.begin()))
        str.erase(0, 1);
    size_t i = str.size() - 1;
    while (isspace(str[i]) && str.size() > 0)
            str.erase(i--, 1);
}
 
void trim_ch(std::string& str, char ch)
{
    while (*str.begin() == ch)
        str.erase(0, 1);
    size_t i = str.size() - 1;
    while (str[i] == ch && str.size() > 0)
            str.erase(i--, 1);
}
 
int main()
{
    std::ifstream in("E:\\Temp\\obj.txt");
    std::vector<std::string> obj;
    std::string buf;
    while (std::getline(in, buf, '\n'))
        obj.push_back(buf);
    /* Удаление заголовка и открывающей скобки */
    in.close();
    std::for_each(obj.begin(), obj.end(), trim);
    std::vector<std::string>::iterator it = std::find(obj.begin(), obj.end(), "{");
    it++;
    if (it != obj.end())
        obj.erase(obj.begin(), it);
 
    /* Удаление закрывающей скобки */
    it = std::find(obj.begin(), obj.end(), "}");
    if (it != obj.end())
        obj.erase(it, obj.end());
 
    size_t kpCount = obj.size();
    std::map<std::string, std::string> map;
    for(int i = 0; i < kpCount; i++)
    {
        buf = obj[i];
        int pos = buf.find(' ');
        if (pos != std::string::npos)
        {
            int space_pos = buf.find(' ');
            if (space_pos != std::string::npos)
            {
                std::string key = buf.substr(0, space_pos);
                std::string value = buf.substr(space_pos, buf.size() - space_pos - 1);
                trim(key);
                trim_ch(key, '"');
                trim(value);
                trim_ch(value, '"');
                map[key] = value;
            }
        }
    }
 
    /* Вывод */
    std::map<std::string, std::string>::iterator it_map = map.begin();
    for(; it_map != map.end(); ++it_map)
        std::cout << it_map->first << ": " << it_map->second << std::endl;
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2012, 22:32     Парсинг файла
Еще ссылки по теме:

Чтение юникодного файла и парсинг строки - C++
Не удается нормально считать файл. значения читаются с нуль пробелом, как их распарсить и сконвертировать в обычные типы данных?? вот...

Считывание и парсинг данных с текстового файла - C++
Как правильно считать такую строку с етого файла? 3 circle 3.0 3.0 5.0 square 0.0 0.0 0.0 4.0 4.0 4.0 4.0 0.0 triangle 3.0 3.0 0.0...

Парсинг - C++
Привет всем вообщем нужно удачно спарсить данные (gold, money, fuel, lvl, model) вид ответа хоть и xml но данные к сожалению находятся не в...

Парсинг - C++
Всем доброго времени суток. Только начал изучать c++ и нужна помощь. Есть код, нужно сделать парсинг. Не понимаю , что это и как его...

Парсинг - C++
Привет всем ) Есть небольшая проблема например имеется переменная String t = '&lt;img src=&quot;http://site.ru/u3124123/d_hwre2.jpg&quot;/&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
06.07.2012, 22:32  [ТС]     Парсинг файла #22
Цитата Сообщение от Avazart Посмотреть сообщение
А что тут можно посоветывать? Читайте книги учитесь...Писать за других программу занятие деструктивное.
ладно разберусь
Yandex
Объявления
06.07.2012, 22:32     Парсинг файла
Ответ Создать тему
Опции темы

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