Probleme de lecture fichier texte

lucky hal Messages postés 22 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 4 février 2008 - 8 oct. 2006 à 17:03
lucky hal Messages postés 22 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 4 février 2008 - 10 oct. 2006 à 19:43
Bonjour,
voila, j'ai un petit soucis, j'ai un fichier texte qui ressemble a ca :
[section1]
[section2]
[section3]
test1|test2|test3|test4|test5|test6|test7|test8
[section4]

et une fonction qui est sensée me lire ce fichier et me générer un tableau de string en insérant une ligne au milieu, dans le but de recopier ensuite ce tableau dans le fichier et avoir donc une ligne inserer la ou je veut...

bool insert_donne(fstream& fichier, string section, string donne, int num_donne)
{
   bool retour = false; //me dit si l'insertion s'est bien passée   
   int nb_ligne_fichier = combien_ligne(fichier); // compte le nombre de ligne du fichier
   long position_temp = 0;
   long position_donne = position_insertion (fichier,section,num_donne); // donne la position où inserer la ligne
   string temp;
  
   string buffer[nb_ligne_fichier+1];
   fichier.clear();
   fichier.seekg(0);
   for (int i = 0; i <= nb_ligne_fichier; i++)
   {
      fichier >> temp;
      cout << "ligne_lue : " << temp <<endl;//affichage de debug pour verifier la lecture
      buffer[i] = temp;
      position_temp = fichier.tellg();
      if (position_temp == position_donne)
         buffer[++i] = donne;   
   }
   for (int j = 0;j <= nb_ligne_fichier;j++)
   {
      //recopiage dans le fichier
   }
   return retour;  
}

Alors en théorie ca doit marcher sauf que voila ce que ca m'affiche :

ligne_lue : [section1]
ligne_lue : ection2]
ligne_lue : section3]
ligne_lue : test1|test2|test3|test4|test5|test6|test7|test8
ligne_lue : [section4]

Je ne comprend pas où passe les caracteres manquant !! J'utilise la derniere version de DEVC++
Si quelqu'un connait une solution ou à une suggestion, ca m'arrangerais merci d'avance

2 réponses

mad_love_disease Messages postés 64 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 1 juillet 2010 3
10 oct. 2006 à 12:41
Salut lucky,

J'ai fait un copier coller de ton code et ca marche tres bien. Cependant je n'ai pas ta définition des fonctions:
combien_ligne(fichier); // compte le nombre de ligne du fichier
et position_insertion (fichier,section,num_donne); // donne la position où inserer la ligne

Tu alteres peut etre le fichier à ce moment la!

Courage,

Mad_Love_Disease
0
lucky hal Messages postés 22 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 4 février 2008
10 oct. 2006 à 19:43
Bonjour,et merci de m'avoir repondu si vite...
Alors je ne peut pas alterer le fichier avec ces fonction puisque elles ne font que lire le fichier et compter les ligne jusqu'a a un arret, aucune ecriture, et meme a titre de test si je fait afficher le fichier ligne a ligne a la fin de ces fonctions, je n'est pas de problemes...
Comme je ne comprend pas d'où vient le probleme, je vait le reprendre à la base et changer mon angle d'analyse...Je crois que je vait faire une classe qui gère un buffer de string comme une liste chainée et une classe qui gère mon fichier avec le formatage et qui fera les opérations sur le buffer en mémoire que je recopirais dans le fichier dès qu'il y aura un changement, ce qui m'embete c'est que ca va me demander beaucoup plus de resources mémoire...
Je vous remercie et posterais le tout dès que j'aurais terminer au cas ou d'autres aurait un soucis equivalent...
0
Rejoignez-nous