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

Parsowanie zawartości pliku

VPS Starter Arubacloud
0 głosów
1,567 wizyt
pytanie zadane 26 sierpnia 2017 w C i C++ przez Munvik Dyskutant (9,350 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,440 p.)
wyrazenia regularne, petla, if
komentarz 26 sierpnia 2017 przez Ehlert Ekspert (212,630 p.)

1 odpowiedź

+1 głos
odpowiedź 26 sierpnia 2017 przez j23 Mędrzec (194,920 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 Dyskutant (9,350 p.)

Muszę troche popytać

using svec_type = vector<string>;

To to samo co

typedef vector<string> svec_type;

?

komentarz 26 sierpnia 2017 przez j23 Mędrzec (194,920 p.)

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

Podobne pytania

0 głosów
0 odpowiedzi 181 wizyt
+1 głos
2 odpowiedzi 402 wizyt
pytanie zadane 12 listopada 2022 w Python przez Giacomo Nowicjusz (200 p.)
0 głosów
0 odpowiedzi 68 wizyt
pytanie zadane 21 maja 2020 w Inne języki przez overcq Pasjonat (21,540 p.)

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...