[C++] remplacer dans un fichier

remplacer dans un fichier [C++] - C++ - Programmation

Marsh Posté le 10-04-2007 à 18:59:25    

Bonjour,
 
Quel est le moyen le plus optimisé pour remplacer une ligne d'un fichier par une nouvelle ligne ?
Je pourrais recréer un fichier et copier mon fichier en remplacant juste la ligne désirée mais c'est tres bourrin, surtout sachant que mes fichiers contiennent plusieurs milions de ligne et que la ligne que je desirerais remplacer est la premiere :)
 
Merci d'avance.

Reply

Marsh Posté le 10-04-2007 à 18:59:25   

Reply

Marsh Posté le 10-04-2007 à 19:33:24    

Salut !
   Pour faire ce genre de travail, je trouve qu'il serait plus simple de passer par un script non ? (putôt que de faire un programme en C++)

Reply

Marsh Posté le 10-04-2007 à 19:43:21    

Je suis entierement d'accord avec toi, mais j'aimerais eviter des scripts shells dans mon code C++.
De toute facon je me suis arrangé pour ne pas avoir a modifier la premiere ligne de mon fichier mais ma question reste valable par curiosité.

Reply

Marsh Posté le 10-04-2007 à 19:55:16    

ben, la moi je passerai par la STL : tu écrit ta première chaine et ensuite tu fait du getLine & write...
[edit] et puis si c'est tous les fichier d'un répertoire, j'utiliserai boost::filesystem pour avoir tous mes fichier :)


Message édité par Amonchakai le 10-04-2007 à 19:57:00
Reply

Marsh Posté le 12-04-2007 à 16:45:36    

Dans un fichier texte, les lignes sont concaténée les unes à la suite des autres, donc si la nouvelle ligne n'a pas la même longueur que l'ancienne, tu dois réécrire complétement le fichier à partir de la position du changement...
 
Pour être plus efficace, il faudra voir pour un codage plus adapté à ce type d'opération.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed