Bonjour !

J'ai cherché pendant des heures une solution à un problème qui me semble assez étonnant, sans succès... voici l'histoire :

J'ai un programme qui doit analyser/découper un fichier texte contenant des commandes, données, etc. J'ai donc développé une fonction qui s'occupe de découper le fichier et de le transformer en CArray, contenant les commandes, les données, etc.
Je dispose donc d'une collection CArray<char *, char *>. Je parcours le fichier via la méthode ReadString() de CStdioFile et je convertis chacune des chaînes de caractères en char *. Je procède ensuite à l'ajout de la chaîne à ma collection (avec la fonction Add()).
Le problème est qu'à la fin du traitement, ma collection ne contient pas les valeurs ajoutées auparavant. Je n'en ai toujours pas déterminer la cause.
Pour le moment, j'ai déjà vérifié pas mal de choses :

A chaque conversion de chaîne lue dans le fichier, j'écris le contenu du buffer char * dans un autre fichier. Le contenu est le bon. J'ajoute ensuite le buffer à ma collection :

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
 
// Code simplifié, je passe les vérifications d'ouverture de fichiers //
FILE * pFile = fopen("resultat.txt", "a");
FILE * pFile1 = fopen("resultat1.txt", "a");
int i = 0;
while(sFile.ReadString(csRead)
{
       char * buffer = new char[30];
 
       // Je rencontre une commande
       buffer = csRead.GetBuffer(0);
       m_CommandArray.Add(buffer);
       fprintf(pFile, "%s\n", m_CommandArray.GetAt(i);
       i++;
 
       if(!strcmpi(buffer, "ma commande stop"))
       {
               int n = m_CommandArray.size();
               for(int k = 0; k < n; k++)
                       fprintf(pFile1, "%s\n", m_CommandArray.GetAt(k);
               break;
       }
}
fclose(pFile);
fclose(pFile1);
En sortie j'obtiens exactement ce que je veux dans le fichier resultat.txt. En revanche, le contenu du fichier resultat1.txt est complétement différent. Aucun traitement n'est subi par ma collection mis à part les ajouts entre le moment où j'écris dans resultat.txt et celui où j'écris dans resultat1.txt.

Quelqu'un aurait t-il déjà rencontré un problème similaire et trouvé sa solution ?

Par avance merci.