Bonjour à tous,
J'ai un petit problème avec un fichier txt, j'ai un fichier txt qui a cette forme :
Ce bloc peut se répéter N fois dans le fichier txt. Je fait donc une boucle while afin de parcourir chacune de mes lignes avec ifstream, et j'utilise boost afin de séparer ma ligne sur chaque espace, comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 BT 1 BN bonjour BG BU BB BM NH BP A:001 P01:test P02:00001400 P03:00001400 P09:string KS toto tata BT 20 ....
Moi ce que j'aimerais faire c'est récupérer un tableau de ligne pour chaque section. Une section commence par BT et dès que je retombe sur un BT j'ai une nouvelle section. Mon while est donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 while(std::getline(fichier, line)) { std::vector<std::string> tokens; boost::split(tokens, line, boost::is_any_of(" ")); }
Problème je ne sais pas trop comment faire pour avoir au final quelque chose comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 while(std::getline(fichier, line)) { std::vector<std::string> tokens; boost::split(tokens, line, boost::is_any_of(" ")); if(tokens[0].compare("BT") == 0) { //nouvelle section detecte ici } else if(tokens[0].compare("BP") == 0) { } else { } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 [0] => Array ( [0] => BT 1 [1] => BN poteau [2] => BG [3] => BU [4] => BB [5] => BM NH [6] => BP A:001 P01:test P02:00001400 P03:00001400 P09:string [7] => KS toto tata ) [1] => Array( [1] => BT 20 [2] => ........... )
Partager