- Supprimer une ligne dans un fichier csv en langage C
- Impossible de supprimer un fichier - Guide
- Fichier rar - Guide
- Supprimer une page word - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
2 réponses
Modifié le 11 nov. 2022 à 22:40
Bonjour Claire,
En C, pour supprimer une ligne d'un fichier "fichier.txt", tu n'as pas d'autre choix que de :
- ouvrir "fichier.txt" en lecture
- ouvrir un "fichier_temp.txt" en écriture
- lire chaque ligne de "fichier.txt" et les copier dans "fichier_temp.txt" à l'exception de la ligne à supprimer
- fermer les deux fichiers
- effacer "fichier.txt"
- renommer "fichier_temp.txt" en "fichier.txt"
Si le contenu de "fichier.txt" est déjà chargé en mémoire dans ton programme, tu n'as pas à faire 1., tu liras les données en mémoire en 3. au lieu de les lire dans "fichier.txt" et tu fermeras juste "fichier_temp.txt" en 4.
Si tu dois lire le prénom à la suite du nom, tu fais simplement deux saisies dans deux chaînes différentes.
Si tu fais les choses dans l'ordre tel que décrit par [dal], ce n'est pas grave "d'écraser" la zone de mémoire.
+ tu lis
+ tu vérifies
+ tu écris
Ce qui a été lu précédemment a déjà été sauvé dans le fichier de sortie (ou le tampon associé).
Puisqu'on n'a pas ton code, on ne sait pas comment tu fais.
Mais en général, on lit toute la ligne dans une chaîne et on isole les champs dans d'autres chaînes au besoin.
Puis on recompose la ligne avec les nouvelles informations et on écrit la nouvelle ligne au complet d'un seul coup.
Si tu oublies des informations en isolant ou en recomposant, c'est certain que tu vas perdre quelque chose.