Ecrire en fin de fichier.... [Résolu]

Signaler
Messages postés
18
Date d'inscription
samedi 3 mai 2003
Statut
Membre
Dernière intervention
5 août 2004
-
Messages postés
18
Date d'inscription
samedi 3 mai 2003
Statut
Membre
Dernière intervention
5 août 2004
-
Bonjour les z'infos...

je cherche a ecrire en fin d'un fichier avec C#. Il existe diferentes facon de le faire mais j'ai le fais est que cela ne fonctionne pas.... il ecrase mon ficheirs au lieu d'ecrire en fin !!!

facon 1 (facon C!!):
fs = new FileStream(LogFile, FileMode.OpenOrCreate, FileAccess.Write );
fs.Seek(0, SeekOrigin.End);
sw = new StreamWriter(fs);
sw.WriteLine(msg);
sw.Close();
fs.Close();

facon 2 avec un StreamWriter...:
sw = File.AppendText(LogFile);
sw.WriteLine(msg);
sw.Close();

facon 3 avec un mode append:
fs = new FileStream(LogFile, FileMode.Append);
sw = new StreamWriter(fs);
sw.WriteLine(msg);
sw.Close();
fs.Close();

Donc tout ca ecrit dans le fichier (LogFile = ) TOTO.txt en debut et non en fin de fichier...

ps: j'utilise un IDE appelé SharpDevelop (GPL !!)

10 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
"Le plus drole, c'est que j'ouvre le fichiers a chaque fois que j'ecris une ligne.... mais a l'ouverture du programme ca ecrase le fichier..... a tous les coup !!!! "
Avec ce code là dans le constructeur ce n'est pas vraiment etonnant, tu effaces le fichier si il existe...:
FileInfo fi = new FileInfo(LogFile);
if (fi.Exists){
fi.Delete();
}


Cocoricoooooooo !!!!
Messages postés
18
Date d'inscription
samedi 3 mai 2003
Statut
Membre
Dernière intervention
5 août 2004

[Edit - ajout]

Quelqu'un a une idée...
Messages postés
1522
Date d'inscription
mardi 18 décembre 2001
Statut
Modérateur
Dernière intervention
21 août 2010
6
FileStream fs = new FileStream(LogFile, FileMode.Append);
if ( !msg.EndsWith(Environment.NewLine) )
    msg += Environment.NewLine;
byte[] msg = System.Text.ASCIIEncoding.ASCII.GetBytes(msg);
fs.Write(msg, 0, msg.Length);
fs.Flush();
fs.Close(); 


Cela fonctionne tres bien chez moi :)

A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
Messages postés
18
Date d'inscription
samedi 3 mai 2003
Statut
Membre
Dernière intervention
5 août 2004

MARCHE PAS NON PLUS!

J'espere que ca viens pas de mon logiciel... y pas moyen de copiler mon projet autrement....

Ou peut etre quelqu'un peu le faire pour voir!!!
qfPCommConf.zip

ps: testé sans virus..... de toute facon y que des sources... (format TExTe!)

MERCi et pas grav si ersonne n'essaye je comprend! !
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
FileStream fs = new FileStream(LogFile, FileMode.Append);
fs.Seek(0, SeekOrigin.End);
...


Cocoricoooooooo !!!!
Messages postés
18
Date d'inscription
samedi 3 mai 2003
Statut
Membre
Dernière intervention
5 août 2004

oui .... dans le fond je suis d'accord mais ca veux pas marcher...

De plus le Append est sensé faire un truc du genre SeekOrigin.End....

SF came back ! => Le plus drole, c'est que j'ouvre le fichiers a chaque fois que j'ecris une ligne.... mais a l'ouverture du programme ca ecrase le fichier..... a tous les coup !!!!
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
euh moi ça a fonctionner sans probleme

Cocoricoooooooo !!!!
Messages postés
1522
Date d'inscription
mardi 18 décembre 2001
Statut
Modérateur
Dernière intervention
21 août 2010
6
wipeout > Dsl j'ai pas de SharpDevelop sur ma machine
et j'ai pas le temps de remettre tout en ordre dans un projet VS.NET 2003 :)

Coq > Nop le mode append te place normalement à la fin du fichier, le Seek est donc inutile :)

A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
CrazyHT : exact, je me suis completement embrouillé avec le coup de l'ecrasement au lancement et pas apres, mais maintenant que j'ai vu le delete j'ai compris le truc ^^

Cocoricoooooooo !!!!
Messages postés
18
Date d'inscription
samedi 3 mai 2003
Statut
Membre
Dernière intervention
5 août 2004

le boulet!! !!! J'ai vraiment de la merde dans les yeux.... aujourd'hui


mille excuse.... pour le derangement...