ElectricalMan
Messages postés39Date d'inscriptionsamedi 20 mars 2004StatutMembreDernière intervention 5 novembre 2008
-
28 juil. 2006 à 19:03
ElectricalMan
Messages postés39Date d'inscriptionsamedi 20 mars 2004StatutMembreDernière intervention 5 novembre 2008
-
30 juil. 2006 à 20:54
slt tt le monde,
est ce qu'il y a un moyen d'insérer du texte dans un fichier ss écraser ce qu' y avait ?!
//-----------------------------------------------------------------
// fonction qui rajoute un texte au début d'un fichier
//-----------------------------------------------------------------
void rajoutTextDansFic(FILE* fic, char str[])
{
rewind(fic);
fprintf(fic, "%s", str); // si je fait ça, ça écrase }
Zootella
Messages postés252Date d'inscriptionvendredi 10 juin 2005StatutMembreDernière intervention 5 septembre 2006 28 juil. 2006 à 19:24
>est ce qu'il y a un moyen d'insérer du texte dans un fichier ss écraser ce qu' y avait ?!
Au début du fichier, non.
A la fin, oui, en enlevant le rewind.
Bein il faut que tu place le pointeur de la structure FILE vers la fin de ton fichier comme cela:
fseek(fic, filelength(fic), SEEK_SET);
--le 1er argument dit sur quelle structure FILE on décale le pointeur.
--le 2eme dit de combien d'octects, de caractaires que l'on deplace le pointeur du fichier
En effet filelength() renvoi la taille du fichier
--Et le 3eme argument explique a partir de quel endroit on decale le fichier.
Dans le cas de SEEK_SET il faut comprendre que l'on décale de ponteur de "filelength(fic)" octect à partir du debut du fichier.
ou alors tu ouvres ton fichier en mode ajout: "a"
au lieu de: "r", "w", "r+" ou "w+"...
MaLaDeDeDe 97one
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 28 juil. 2006 à 20:09
Mettre du texte au début comme au millieu, c'est possible. Mais c'est tout un sport. Premièrement, pour insérer du texte au début, tu peux mettre dans un buffer tout le texte de ton fichier, écrire ton texte pour le début, réouvrire en mode "a" puis copier le buffer dans le fichier. Avec les fonctions de l'API ça donne à peut près: