Mise à jour d'un fichier texte

Résolu
Signaler
Messages postés
178
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2009
-
Messages postés
933
Date d'inscription
dimanche 1 avril 2001
Statut
Modérateur
Dernière intervention
9 janvier 2012
-
Bonjour à tous.

J'ai un fichier "liste.txt" qui contient une liste de chemin d'accès à des fichiers avec leur date de dernière modification :
ex. :
...
C:\Windows\Bureau\test.doc |01/02/05|
C:\Windows\Bureau\test2.xls |03/01/05|
C:\Windows\Bureau\test3.bmp |24/01/05|
...
J'aimerai pouvoir ajouter une ligne à ce document (à la fin ou au début, il n'y a pas d'importance).
Voici un bout du code :

FILE *fichier;
fichier = fopen("liste.txt", "wt");
fprintf(fichier, "%s |%s|\n", path, dte);
fclose(fichier)


Néo020585

La programmation, c'est l'art de découvrir

3 réponses

Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010

Une autre alternative serait de charger les lignes dans une liste chaînée (ou un tableau) de chaînes, travailler sur cette liste (ajout, suppression) et ensuite de l'ecrire dans le fichier.
Par contre la liste modifiée et plus petite que l'orgininal...Ah si ouvrir le fichier en création...
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
Pour ajouter à la fin, il faut ouvrir le fichier en mode "a" ou "a+". les appels à fwrite et fprintf se feront à la fin.

Pour insérer au début c'est plus chaud. Il faut copier le fichire initial dans un fichier temporaire, écraser le fichier initial, mettre la ligne et recopier le contenu du fichier copié.
Messages postés
933
Date d'inscription
dimanche 1 avril 2001
Statut
Modérateur
Dernière intervention
9 janvier 2012
2
Bonjour,

Pour réaliser cela tu peux aussi utiliser les APIs Windows d'accès au fichiers :

CreateFile()
ReadFile()
WriteFile()
SetFilePointer()

Pour plus d'informations aller voir MSDN http://msdn.microsoft.com/library

@+
Arnotic,
Admin CS, MVP Visual C++