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

Parsowanie zawartości pliku

0 głosów
201 wizyt
pytanie zadane 26 sierpnia 2017 w C i C++ przez Munvik Mądrala (7,130 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,590 p.)
wyrazenia regularne, petla, if
komentarz 26 sierpnia 2017 przez Ehlert VIP (132,740 p.)

1 odpowiedź

+1 głos
odpowiedź 26 sierpnia 2017 przez j23 Maniak (63,400 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 (7,130 p.)

Muszę troche popytać

using svec_type = vector<string>;

To to samo co

typedef vector<string> svec_type;

?

komentarz 26 sierpnia 2017 przez j23 Maniak (63,400 p.)

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

Podobne pytania

0 głosów
1 odpowiedź 345 wizyt
pytanie zadane 21 czerwca 2017 w Bezpieczeństwo, hacking przez Pawel19 Nowicjusz (120 p.)
+1 głos
3 odpowiedzi 190 wizyt
pytanie zadane 2 września 2016 w C i C++ przez dichloroetylobenzen Użytkownik (850 p.)
0 głosów
1 odpowiedź 34 wizyt
pytanie zadane 7 czerwca w C# i .NET przez Oskar Szkurłat Obywatel (1,090 p.)
Porady nie od parady
Zadając pytanie postaraj się o szczegółowe opisanie problemu oraz udostępnienie wszystkich istotnych informacji (kody źródłowe, zrzuty ekranu itp.).Opisanie problemu

53,002 zapytań

96,195 odpowiedzi

196,912 komentarzy

25,882 pasjonatów

Przeglądających: 61
Pasjonatów: 0 Gości: 61

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.

...