bobybx
Messages postés18Date d'inscriptionmardi 30 mars 2004StatutMembreDernière intervention 4 mars 2008
-
24 juin 2006 à 18:13
bobybx
Messages postés18Date d'inscriptionmardi 30 mars 2004StatutMembreDernière intervention 4 mars 2008
-
25 juin 2006 à 00:33
Bonjour,
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 ??
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 24 juin 2006 à 18:39
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.
bobybx
Messages postés18Date d'inscriptionmardi 30 mars 2004StatutMembreDernière intervention 4 mars 2008 24 juin 2006 à 19:14
J'ai déjà essayé.
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.