lucky hal
Messages postés22Date d'inscriptionjeudi 17 février 2005StatutMembreDernière intervention 4 février 2008
-
8 oct. 2006 à 17:03
lucky hal
Messages postés22Date d'inscriptionjeudi 17 février 2005StatutMembreDerniè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 :
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
mad_love_disease
Messages postés64Date d'inscriptionlundi 20 octobre 2003StatutMembreDernière intervention 1 juillet 20103 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
lucky hal
Messages postés22Date d'inscriptionjeudi 17 février 2005StatutMembreDerniè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...