• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Parsowanie zawartości pliku

Ultraszybki serwer VPS NVMe BIZNES
0 głosów
130 wizyt
pytanie zadane 26 sierpnia 2017 w C i C++ przez Munvik Mądrala (6,910 p.)

Cześć. Potrzebuje napisać sobie parser, który mi odczyta z pliku .txt / .ini dane i zapisze je do zmiennych.

Plik przyjmuje postać mniej więcej taką

[Resolution] 1280 720
[Volume] 10
//reszta

I w razie zmiany żeby zamienił te dane na te wybrane w apce.

Jak za takie coś się zabrać ?

komentarz 26 sierpnia 2017 przez QizmoPL Stary wyjadacz (11,610 p.)
wyrazenia regularne, petla, if
komentarz 26 sierpnia 2017 przez Ehlert VIP (117,770 p.)

1 odpowiedź

+1 głos
odpowiedź 26 sierpnia 2017 przez j23 Nałogowiec (41,720 p.)

Prościej, bez użycia sugerowanych wyrażeń regularnych, można zrobić tak:

using svec_type = vector<string>;
using param_type = pair<string, svec_type>;

ifstream is(...);

string line;

vector<param_type> parameters; // <--- tu będziesz miał przeczytane parametry

while(getline(is, line))
{
	istringstream iss(move(line));
	string name;
	
	while(iss >> name)
	{
		if(name.front() != '[' || name.back() != ']') break;

		svec_type v;

		copy(istream_iterator<string>(iss), istream_iterator<string>(), back_inserter(v));
		
		parameters.emplace_back(make_pair(move(name), move(v)));
	}
}

// wyświetlanie
for(auto p : parameters)
{
	cout << p.first << '\n';
	for(auto v : p.second)
		cout << '\t' << v << '\n';
}

 

komentarz 26 sierpnia 2017 przez Munvik Mądrala (6,910 p.)

Muszę troche popytać

using svec_type = vector<string>;

To to samo co

typedef vector<string> svec_type;

?

komentarz 26 sierpnia 2017 przez j23 Nałogowiec (41,720 p.)

Tak. Choć using ma większe możliwości.

Podobne pytania

0 głosów
1 odpowiedź 99 wizyt
pytanie zadane 30 października 2017 w C i C++ przez Jakub 0 Mądrala (6,600 p.)
0 głosów
1 odpowiedź 64 wizyt
pytanie zadane 1 marca 2016 w JavaScript, jQuery, AJAX przez kogielmogiel Nowicjusz (120 p.)
0 głosów
4 odpowiedzi 301 wizyt
pytanie zadane 31 października 2015 w C i C++ przez Dywan Nowicjusz (170 p.)
Porady nie od parady
Zadając pytanie postaraj się o poprawną pisownię i czytelne formatowanie tekstu.
Ciekawy innych porad? Odwiedź tę stronę!

44,251 zapytań

84,047 odpowiedzi

167,337 komentarzy

21,161 pasjonatów

Przeglądających: 176
Pasjonatów: 6 Gości: 170

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...