C: supprimer un caractère dans un fichier

Koma777 Messages postés 270 Statut Membre -  
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je suis entrain d'écrire un carnet d'adresse en langage c.
J'ai déjà codé l'ajout de contact, et l'affichage total du carnet.
Par contre je ne sais pas comment supprimer un contact.

Je cherches donc à savoir comment supprimer un caractère dans un fichier???
Merci d'avance

6 réponses

pyschopathe Messages postés 2053 Statut Membre 135
 
A part en chargeant le fichier dans un tampon, en modifiant ça en mémoire et en réenregistrant, je ne sais pas...
0
Koma777 Messages postés 270 Statut Membre 7
 
je ne sais pas...
Par ce qu'il faut également demander à l'utilisateur quel contact il voudrais supprimer...

Donc ouvrir le fichier.
Demander quel contact supprimer.
Ce placer dnas le fichier au niveau du contact.
Ensuite supprimer la ligne où il ce trouve.
Mais ça je ne vois vraiment pas comment faire....
0
pyschopathe Messages postés 2053 Statut Membre 135
 
De quelle forme est ton fichier ? Tu peux peut-être utiliser du XML et des outils spécialisés qui t'épargneraient le sale boulot...
0
Koma777 Messages postés 270 Statut Membre 7
 
C'est un fichier txt.
Et je ne peux que utiliser ça...

Par exemple voici la base.txt avec nom prénom n°de téléphone et age:
toto titi 0123456789 22
tata toutou 0234456789 26

L'utilisateur demande à supprimer tata et tout le reste (nom tel et age).

Comment faire pour ce positionner dans le fichier en prenant en compte le nom du contact donné par l'utilisateur?
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Salut,
Effectivement, tu n'as pas le choix que de tout charger, et de supprimer la ligne désirée étant donné que tu ne connais pas le numéro de la ligne qui permettrait de positionner le flux.
Cdlt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Koma777 Messages postés 270 Statut Membre 7
 
ok, mais comment faire alors pour supprimer la ligne voulu?
0
pyschopathe Messages postés 2053 Statut Membre 135
 
Tu charges le fichier en mémoire, tu le lis ligne par ligne, quand tu trouves la ligne que tu veux effacer, tu la supprimes, tu enregistres le fichier sur le disque...
0
pyschopathe Messages postés 2053 Statut Membre 135
 
Mais si tu as vraiment beaucoup de contacts, faire une base de données ou au moins utiliser un format XML permettrait d'être plus efficace à mon avis...
0
Koma777 Messages postés 270 Statut Membre 7
 
oui mais c'est un "mini-projet" qu'un de mes prof m'a donné à faire en C.
Merci pour tes réponses en tout cas.
Je verrais avec ce que tu m'as dit alors!

Bien que je ne vois pas quel fonction permet de:
"charger le fichier en mémoire, tu le lis ligne par ligne, quand tu trouves la ligne que tu veux effacer, tu la supprimes, tu enregistres le fichier sur le disque..."
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Bah, à toi de la faire lol.
Charger le fichier en mémoire, tu t'en sortiras facilement avec du fgets et un tableau dans une boucle while.
Après, tu recopies dans le fichier avec fprintf dans une boucle while, si la ligne ne contient pas le nom (et ça avec strtok, tu t'en sors facilement).
Cdlt
0