mode d'ouverture d'un fichier

Le
programmation
Bonjour,

J'ai remarqué que à chaque fois on appelle une fonction il y a une
ligne s'ajoute à la fin. ceci c'est bon et à la fin du programme
j'obtiens le fichier "resultat.txt" qui contient la liste de toutes
les combinaisons.
Ceci grâce au mode de l'ouverture de fichier :
<code type="c">fpR = fopen ("resultat.txt","a");</code>

Mais, lorsque je exécute le programme une autre fois, je remarque que
le contenu de l'ancienne exécution reste.

Je voudrais à chaque exécution j'obtiens le contenu réel du fichier
"resultat.txt" et donc pas du cumul

il y a un autre mode qui permet d'ajouter à la fin du fichier et
ouvrir un nouveau fichier dans la prochaine exécution ?

Que proposez-vous ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
xip
Le #19976511
"programmation"

Bonjour,



Bonjour,

J'ai remarqué que à chaque fois on appelle une fonction il y a une
ligne s'ajoute à la fin. ceci c'est bon et à la fin du programme
j'obtiens le fichier "resultat.txt" qui contient la liste de toutes
les combinaisons.
Ceci grâce au mode de l'ouverture de fichier :



Je présume que tu veux dire que lorsque tu fais un fopen de ton fichier, tu
rajoute tes nouvelles entrées à la suite des anciennes d'une précédente
exécution, c'est ca ?
C'est normal puisque tu a donné "a" (comme "append") au mode d'ouverture du
fichier.

Si tu ne veux pas de ce mode, ne lui passe pas "a" mais juste "w"' si tu ne
veux juste qu'écrire dedans.

Mais, lorsque je exécute le programme une autre fois, je remarque que
le contenu de l'ancienne exécution reste.



normal

Je voudrais à chaque exécution j'obtiens le contenu réel du fichier
"resultat.txt" et donc pas du cumul
il y a un autre mode qui permet d'ajouter à la fin du fichier et
ouvrir un nouveau fichier dans la prochaine exécution ?



C'est pas très clair. Ou alors suivant tes appels a la fonction fopen il te
faut déterminer si tu veux ajouter a la fin (mode "a") ou créer un nouveau
fichier "vide" (mode "w") ou bien explique mieux ce que tu veux faire ;o)

fpR = fopen ("resultat.txt","w"); ou fpR = fopen ("resultat.txt","w+");

xip
programmation
Le #19977461
On 23 août, 18:56, "xip"
"programmation"

> Bonjour,

Bonjour,

>J'ai remarqué que à chaque fois on appelle une fonction il y a une
>ligne s'ajoute à la fin. ceci c'est bon et à la fin du programme
>j'obtiens le fichier "resultat.txt" qui contient la liste de toutes
>les combinaisons.
>Ceci grâce au mode de l'ouverture de fichier :
>
Je présume que tu veux dire que lorsque tu fais un fopen de ton fichier , tu
rajoute tes nouvelles entrées à la suite des anciennes d'une préc édente
exécution, c'est ca ?
C'est normal puisque tu a donné "a" (comme "append") au mode d'ouvertur e du
fichier.

Si tu ne veux pas de ce mode, ne lui passe pas "a" mais juste "w"' si tu ne
veux juste qu'écrire dedans.

>Mais, lorsque je exécute le programme une autre fois, je remarque que
>le contenu de l'ancienne exécution reste.

normal

>Je voudrais à chaque exécution j'obtiens le contenu réel du fichie r
> "resultat.txt" et donc pas du cumul
>il y a un autre mode qui permet d'ajouter à la fin du fichier et
>ouvrir un nouveau fichier dans la prochaine exécution ?

C'est pas très clair. Ou alors suivant tes appels a la fonction fopen i l te
faut déterminer si tu veux ajouter a la fin (mode "a") ou créer un no uveau
fichier "vide" (mode "w") ou bien explique mieux ce que tu veux faire ;o)

fpR = fopen ("resultat.txt","w"); ou fpR = fopen ("resultat.txt","w+" );

xip



Bonsoir,

J'ajoute une ligne à la fin du fichier à chaque que j'appelle la
fonction pour cela je utilise le mode "a".
ceci c'est bon.

Mais, lorsque je lance une nouvelle exécution alors l'ancien contenu
de fichier reste et donc le nouveau contenu s'ajoute au ancien
contenu.
Ceci me dérange car je voulais que à chaque exécution j'ai le fichier
correspondant.

Merci.
xip
Le #19977511
"programmation"

Bonsoir,



Bonsoir,

J'ajoute une ligne à la fin du fichier à chaque que j'appelle la
fonction pour cela je utilise le mode "a".
ceci c'est bon.



En fait, ce que tu veux, c'est conserver le contenu de ton "resultat.txt"
juste dans l'instance du prog en cours, et a la prochaine exécution une
"remise à zéro" du contenu.
(désolé c'est dimanche soir ;o) )

Mais, lorsque je lance une nouvelle exécution alors l'ancien contenu
de fichier reste et donc le nouveau contenu s'ajoute au ancien
contenu.
Ceci me dérange car je voulais que à chaque exécution j'ai le fichier
correspondant.



Dans ce cas, quand tu demarre ton programme, tu vérifie si ton fichier
resultat.txt est présent, et si c'est le cas, tu le supprime ou tu le
vide...

Sinon poste du code pour voir...

@+
xip
programmation
Le #19977981
> Dans ce cas, quand tu demarre ton programme, tu vérifie si ton fichier
resultat.txt est présent, et si c'est le cas, tu le supprime ou tu le
vide...



Bonjour,

Oui.
- Quels sont les fonctions permettant de supprimer totalement un
fichier sous windows ?
- Quels sont les fonctions permettant de vider le contenu d'un fichier
sous windows ?
Si il n'existe pas ces fonctions comment les programmer ?

Merci.
xip
Le #19977971
programmation"

Bonjour,



Bonjour,

- Quels sont les fonctions permettant de supprimer totalement un
fichier sous windows ?



remove :

/* remove example: remove myfile.txt */
#include
int main ()
{
if( remove( "myfile.txt" ) != 0 )
perror( "Error deleting file" );
else
puts( "File successfully deleted" );
return 0;
}
- Quels sont les fonctions permettant de vider le contenu d'un fichier
sous windows ?



un simple fopen avec w+ en mode devrait suffire je pense.

Si il n'existe pas ces fonctions comment les programmer ?



zen, ca existe ;o)

xip

ps : http://www.cplusplus.com/reference/
Publicité
Poster une réponse
Anonyme