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

Clonk 278 Messages postés mardi 22 janvier 2002Date d'inscription 29 août 2006 Dernière intervention - 7 sept. 2004 à 10:40 - Dernière réponse : cs_eRoZion 241 Messages postés vendredi 23 mai 2003Date d'inscription 8 octobre 2007 Dernière intervention
- 7 sept. 2004 à 21:26
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
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cs_djl 3011 Messages postés jeudi 26 septembre 2002Date d'inscription 27 novembre 2004 Dernière intervention - 7 sept. 2004 à 11:25
3
Merci
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

Merci cs_djl 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de cs_djl
cs_eRoZion 241 Messages postés vendredi 23 mai 2003Date d'inscription 8 octobre 2007 Dernière intervention - 7 sept. 2004 à 15:24
0
Merci
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
Commenter la réponse de cs_eRoZion
Clonk 278 Messages postés mardi 22 janvier 2002Date d'inscription 29 août 2006 Dernière intervention - 7 sept. 2004 à 16:38
0
Merci
Ouais, ça marche mieux comme ça effectivement...
J'utilise une liste chainée, mais ça marche pareil

Merci
Commenter la réponse de Clonk
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 7 sept. 2004 à 17:10
0
Merci
Sous Windows c'est SetFilePointer et SetEndOfFile.

ciao...
BruNews, Admin CS, MVP VC++
Commenter la réponse de BruNews
cs_eRoZion 241 Messages postés vendredi 23 mai 2003Date d'inscription 8 octobre 2007 Dernière intervention - 7 sept. 2004 à 20:51
0
Merci
Bien pratique ce SetEndOfFile que je découvre (comme tous les autres api).
Merci.

eRoZion
Commenter la réponse de cs_eRoZion
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 7 sept. 2004 à 21:01
0
Merci
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++
Commenter la réponse de BruNews
cs_eRoZion 241 Messages postés vendredi 23 mai 2003Date d'inscription 8 octobre 2007 Dernière intervention - 7 sept. 2004 à 21:26
0
Merci
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
Commenter la réponse de cs_eRoZion

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.