Bonjour � tous,

J'ai un petit probl�me avec un fichier txt, j'ai un fichier txt qui a cette forme :

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
....
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
while(std::getline(fichier, line))
{ 
    std::vector<std::string> tokens;
    boost::split(tokens, line, boost::is_any_of(" "));
}
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
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 
    {
 
    } 
}
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
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] =>  ...........
 
               )