Supprimer la dernière ligne d'un fichier... [Résolu]

Signaler
Messages postés
278
Date d'inscription
mardi 22 janvier 2002
Statut
Membre
Dernière intervention
29 août 2006
-
Messages postés
241
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
8 octobre 2007
-
Bonjour,
je voudrais pouvoir supprimer la dernière ligne d'un fichier le plus rapidement possible...
En fait, j'ajoute une ligne dans un fichier pendant le traitement A, puis je lance le traitement B qui va rajouter ou pas des lignes. Si aucune ligne n'est rajoutée en B, je veux pouvoir supprimer la ligne de A

J'espère que j'au été clair ^__^;

Merci

7 réponses

Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
si tu veux faire ca le plus rapidement possible, pas de fichier

travail sur un tableau de chaine de caractere en memoire (une chaine = une ligne) et ecris dans le fichier a la fin des traitements
Messages postés
241
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
8 octobre 2007
1
Et bien si tu ne veux pas passer par l'emploi de tableau, tu n'as qu'à mettre uniquement ta dernière ligne dans un buffer à l'étape A pour ensuite l'écrire si nécessaire à l'étape B (au cas ou l'étape A est totalement indépendante de l'étape B, sinon meme pas besoin de buffer).

Autrement j'ai une solution qui marche sous windows.
Tu stoque en mémoire la taille de ta dernière ligne, puis tu te sers de "chsize" (io.h) pour raccourcir le fichier. Si tu ne trouve pas le handle nécessaire à "chsize" (si tu es passé par fopen) et bien tu te sers de "fileno" (stdio.h) pour le récupérer.

eRoZion
Messages postés
278
Date d'inscription
mardi 22 janvier 2002
Statut
Membre
Dernière intervention
29 août 2006

Ouais, ça marche mieux comme ça effectivement...
J'utilise une liste chainée, mais ça marche pareil

Merci
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Sous Windows c'est SetFilePointer et SetEndOfFile.

ciao...
BruNews, Admin CS, MVP VC++
Messages postés
241
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
8 octobre 2007
1
Bien pratique ce SetEndOfFile que je découvre (comme tous les autres api).
Merci.

eRoZion
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Fais gaffe a son emploi, tronque exeactement le fichier a l'endroit ou se trouve son pointeur au moment de l'appel.
Efficace et sans retour possible.

ciao...
BruNews, Admin CS, MVP VC++
Messages postés
241
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
8 octobre 2007
1
Ok, c'est bon à savoir parce que la doc que je venais de regarder dessus ne le spécifiait pas (le coup du pointeur).

eRoZion