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

Clonk
Messages postés
278
Date d'inscription
mardi 22 janvier 2002
Dernière intervention
29 août 2006
- 7 sept. 2004 à 10:40 - Dernière réponse : cs_eRoZion
Messages postés
241
Date d'inscription
vendredi 23 mai 2003
Dernière intervention
8 octobre 2007
- 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
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Dernière intervention
27 novembre 2004
- 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é 94 internautes ce mois-ci

Commenter la réponse de cs_djl
cs_eRoZion
Messages postés
241
Date d'inscription
vendredi 23 mai 2003
Dernière intervention
8 octobre 2007
- 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
Messages postés
278
Date d'inscription
mardi 22 janvier 2002
Dernière intervention
29 août 2006
- 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
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
- 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
Messages postés
241
Date d'inscription
vendredi 23 mai 2003
Dernière intervention
8 octobre 2007
- 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
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
- 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
Messages postés
241
Date d'inscription
vendredi 23 mai 2003
Dernière intervention
8 octobre 2007
- 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.