Ecrire au milieu d'un fichier sans tout casser?

Ecrire au milieu d'un fichier sans tout casser? - C++ - Programmation

Marsh Posté le 14-06-2005 à 22:47:57    

Salut codeurs et codeuses :hello:  
 
J'ai besoin de constituer un fichier texte pour faire une sorte de serialisation.
Pour cela j'ecris le nom de ma classe, je saute une ligne puis j'ecris mes enregistrements.
Et a la fin de mon prog, je reviens pour noter le nombre d'enregistrements dans la ligne vide.
 


LaClasse
           //la ligne vide
Enregistrement1
Enregistrement2
Enregistrement3


Voila a quoi ca ressemble.
 
Le soucis est que quand je viens ecrire dans cette ligne, je bouffe les caracteres de la ligne suivante. :sweat:  
J'utilise des fstream et aucune des methodes write() ou << ne fonctionne correctement.
 
Quelqu'un sait il faire autrement?
 
Un grand merci! :jap:

Reply

Marsh Posté le 14-06-2005 à 22:47:57   

Reply

Marsh Posté le 14-06-2005 à 22:56:53    

en gros tu veux faire une insertion : pas possible. Sauf si les enregistrements sont de taille fixe et que tu as réservé la place au milieu.

Reply

Marsh Posté le 14-06-2005 à 23:03:35    

Merci pour ta réponse.
C'est craignos! :sweat:
Je vais donc devoir écrire à fin du fichier.
Le probleme va alors etre la relecture.
Y a t il un moyen de lire la derniere ligne en une fois, en combinant seek et >> ? :jap:

Reply

Marsh Posté le 14-06-2005 à 23:14:10    

c'est pas craignos du tout.
 
et non.

Reply

Marsh Posté le 14-06-2005 à 23:46:59    

pourquoi tu ne réserves pas la place au début pour y écrire par la suite ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 14-06-2005 à 23:48:48    

Encore merci
 
Je pense que je vais alors reserver 4 caracteres pour stocker la quantité et tantpis si y'en a plus.
 
Bonne nuit
 
EDIT : grilled by Harkonnen
 


Message édité par aster le 14-06-2005 à 23:51:04
Reply

Marsh Posté le 15-06-2005 à 01:44:35    

Sinon tu pourrai stocker ce qu'il y a apres, ecrire ton enregistrement et réécrire ce qu'il y avait après. C'est un peu lourd evidement, mais c'est pour traiter des gros fichiers?

Reply

Marsh Posté le 15-06-2005 à 18:24:02    

C'est pour un projet donc pas pour un cas réel mais je pense que la méthode barbarian ne plaira pas à l'examinateur! :D
Sinon merci de t'etre penché sur le probleme :jap:

Reply

Sujets relatifs:

Leave a Replay

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