J'ai une question peut-être bête mais je suis bloqué :
J'ai un fichier texte avec 3 lignes
ligne 1
ligne 2
ligne 3
Le contenu de ces lignes varient et sont totalement différents.
Je souhaiterais effacer via ofstream la ligne 2 pour la remplacer par une ligne 4 d'une longueur différente.
Je connais la position de la ligne et place le curseur sur la ligne grace à
fichier.seekg(position);
Comment effecer la ligne à cette position en la remplaçant par une autre sans toucher les autres lignes ??
A ton avis ? Un fichier c'est quoi ? Une suite d'octet. Une ligne c'est
quoi ? une suite d'octet... Apres la ligne 2, la ligne 3 commence. Or
sur un disque dur, tu peux pas rajouter des octets libres entre 2
octets, ca te parait logique non ?
Donc a partir de la, ya pas 36 solutions pour faire ce que tu veux....
Faut tout décaler. Tu écris ta ligne 4 puis toutes les lignes suivantes
a partir de la 3.
int position = 164;
ofstream fichier( "cpm.txt" );
fichier.seekp(position);
fichier << "Groupe Z\n";
Le code suivant me donne 164 blanc au lieu de ma laisser mes lignes avant la position 164 et efface aussi tout le reste après mon "Groupe Z\n".
En clair la ligne 1 et 3 ont été effacées.