Bonjour,
j'ouvre un fichier csv en c++, ce fichier est décomposé comme ceci:

19/11/04,20/11/04,"100691","8MI","arret","6,75"

j'ai une fonction qui me permet de changer un caractère dans tout le fichier une autre qui supprime tout les caractère d'un type et un séparateur.
je voudrais récupérer le 6,75, il faudrait que je puisse changer "," et ," en ; par exemple et non pas que ,
ou mieux si vous savez comment importer un fichier xls en c++ !

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
 
void SupprimeTousLesCaracteres( string &Str, char C )
{ 
    Str.erase(
    remove( Str.begin(), Str.end(), C ),
    Str.end() ); 
}    
void changeCaractere (string &str )
{
  string::size_type i = 0;
  while ((i = str.find(",", 0)) != (string::npos))
  str.replace(i, 1, ";" );     
}
 int Split(vector<string>& vecteur, string chaine, char separateur)
 {
 vecteur.clear();
 
 string::size_type stTemp = chaine.find(separateur);
 
 while(stTemp != string::npos)
 {
 vecteur.push_back(chaine.substr(0, stTemp));
 chaine = chaine.substr(stTemp + 1);
 stTemp = chaine.find(separateur);
 }
 
 vecteur.push_back(chaine);
 
return vecteur.size();
} 
 
 
int main(int argc, char *argv[])
{
     string tableau[1000][11];
     char* tab[1000][11];
     int i=0;
     int a=0;
     int nbTabl;
     string mon_fichier = "test1.csv";  // je stocke dans la chaîne mon_fichier le nom du fichier à ouvrir
     ifstream fichier(mon_fichier.c_str());
     if(fichier)  // si l'ouverture a réussi
     {
        string ligne;
        while(getline(fichier, ligne))  
        {                
           i=i+1;//compte le nb de lignes
 
           string test=ligne;
 
           SupprimeTousLesCaracteres( test, '"' );
 
           vector<string> VecStr;
           nbTabl = Split(VecStr, test, ',');
           a=a+1;
 
          for(int d = 0; d < nbTabl; ++d)
          {
           //cout << d << " : " << VecStr[d]<<endl  ;
           tableau[a][d]=VecStr[d];
 
           size_t size =  tableau[a][d].size() + 1;
           char * buffer = new char[ size ];
           // copier la chaîne
           strncpy( buffer,  tableau[a][d].c_str(), size );
           tab[a][d]=buffer;
 
 
           cout<<a<<":"<<d<<": "<<tab[a][d]<<endl;
          } 
        }
 
        fichier.close();  // je referme le fichier
        }         
         else  // sinon
            cerr << "Erreur à l'ouverture !" << endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
Merci