Bonjour,
Je voudrais modifier un fichier texte, en remplaçant certaines des lignes contenues dans ce fichier.
J'arrive à écrire des lignes en fin de fichier, en ouvrant le fichier par :
Par contre, lorsque j'utilise le code suivant, le contenu initial du fichier est supprimé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 std::ofstream fichier(fichierSignet, std::ios::out | std::ios::app);
(i est incrémenté par une boucle for, et 4*i+3 correspond au numéro de la ligne que je veux remplacer).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 std::ofstream fichier(fichierSignet, std::ios::out | std::ios::ate); if (fichier) { fichier.clear(); fichier.seekp(4*i+3, ios::beg); fichier<<"monTexte"<<std::endl; fichier.close(); }
J'ai essayé aussi :
C'est le même résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 std::ofstream fichier(fichierSignet, std::ios::out | std::ios::ate); if (fichier) { fichier.close(); }
A part le problème de l'éffacement du fichier, je pense que mon code ne fait qu'ajouter du texte au lieu de le remplacer, et que 4*i+3 ne correspond pas à une ligne, mais à un caractère.
Je verrais une fois que le problème sera résolu comment faire pour modifier une ligne précise.
Merci d'avance
(Mon projet est sous visual studio 2005, avec les MFC)







Répondre avec citation
Partager