cobra176
Messages postés86Date d'inscriptionmercredi 1 novembre 2000StatutMembreDernière intervention21 janvier 2009
-
31 mai 2006 à 17:59
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 2016
-
2 juin 2006 à 15:36
bonjour a tous
je recherche un code permettant de retirer une ligne contenu dans un fichier
j'ai vu qu'il existé déja des codes permettant cela mais j'ai esssaye et il ne marche pas
alors je demande de l'aide pour créer cette code
pour information
les informations sont contenu dans un fichier appellé carnet.txt et je veux supprimer la ligne entier
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 31 mai 2006 à 20:39
Yop,
Tu lit séquencielement ton fichier et tu range les phrase dans un
buffer (soite liste chainée si tu veu pas perdre de la mémoire, ou
simplement une chaine de caractère assez grande) et on fois que tu a
trouvé la phrase a retiré, tu passe et tu continue d'écrire dans le
buffer. A la fin de la lecture, tu replace tout les contenu du buffer
dans ton fichier (mode 'w' pour re crée un fichier du même nom) ou dans
un autre et le tour est joué.
Les fonctions :
FILE * = fopen("carnet.txt","r") remplacer le "r" par "w" a la ré écriture.
Pour lire , ben tu a le choix. mais vu que tu doit lire séquencielement je te conseil fgets().
Pour ecrire, ben la aussi tu a le choix , si tout ton text ce trouve
dans une chaine de caractère utilise plutot fwrite() (change alors le
"w" en "w+") et si c'est dans une chaine de caractère fputs dans une
boucle for fera l'affaire.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 31 mai 2006 à 21:52
Pourquoi lire par passes si tu mettras tout dans un buffer ??? en ce cas lis tout en 1 passe, ensuite avance un pointeur en comptant les '\n', à la finale on ecrit en 2 passes.