Bonjour,
pour la lecture d'un fichier csv, je bufferise le contenu du fichier avant de l'analyser. Le principal probl�me de mon code est que je me retrouve avec un paquet de caract�res qui ne devraient pas �tre l�.
Le probl�me, c'est que si le fichier que je lis fait x lignes, je vais me retrouver avec x fois la valeur 'xCD' � la fin de mon buffer.Code:
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 if (ouvertureFichier()) { char* buffer; int taille; k=0; // récupérer la taille du fichier : fichier.seekg (0, std::ios::end); // Envoi du curseur à la fin du fichier taille = fichier.tellg(); // Lecture de la position du curseur fichier.seekg (0, std::ios::beg); // Renvoi du curseur au début du fichier // allocation de la mémoire nécessaire : buffer = new char[taille]; // lire les données comme un bloc : fichier.read (buffer, taille); fermetureFichier(); std::ofstream tempFile; tempFile.open("C:/temp/test.txt"); // Pour récupérer le contenu du buffer dans un fichier (debug) if (tempFile.is_open()) { tempFile.write(buffer, taille); tempFile.close(); } /* ... Traitement du buffer ... */
La valeur de 'taille' est pourtant bonne, je ne comprends donc pas.