Bonjour,

Je travail sur un fichier d'une taille initiale X,
Cette taille augmente au fur et � mesure de programme

A chaque fois que je veux le modifier je me positionne en X (je ne veux pas toucher aux donn�es qui se trouvent avant)

Pour se faire j'utilise le code suivant :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
 
ofstream outfile ( strFichier.c_str(), ofstream::binary | ofstream::out );
 
outfile.seekp( X );
// ou
// outfile.seekp( X, ios_base::beg );  ne change rien
 
outfile.write((char *)donnees, tailleDonnees);
Le probl�me est que avec cette m�thode, qui me parait pourtant logique, les donn�es du fichier ( avant la position X ) sont alt�r�es par ce que j'�cris.


J'ai aussi essay� le code suivant qui lui fonctionne.

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
 
ofstream outfile ( strFichier.c_str(), ofstream::binary | ofstream::app);
 
outfile.write((char *)donnees, tailleDonnees);
Mais qui ne correspond pas � mon besoin car je ne peux plus revenir � la position X...


J'ai remplac� la premi�re m�thode (avec le seek) par l'�quivalent C,a savoir des fopen, fread ... et fseek et cela marche tr�s bien...


Quelqu'un aurai-t-il une id�e du probl�me ??


Merci
@+