Ecrire en fin de fichier....

Résolu
wipeout Messages postés 18 Date d'inscription samedi 3 mai 2003 Statut Membre Dernière intervention 5 août 2004 - 5 août 2004 à 10:57
wipeout Messages postés 18 Date d'inscription samedi 3 mai 2003 Statut Membre Dernière intervention 5 août 2004 - 5 août 2004 à 15:26
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

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
5 août 2004 à 14:47
"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 !!!!
3
wipeout Messages postés 18 Date d'inscription samedi 3 mai 2003 Statut Membre Dernière intervention 5 août 2004
5 août 2004 à 10:58
[Edit - ajout]

Quelqu'un a une idée...
0
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
5 août 2004 à 11:39
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]
0
wipeout Messages postés 18 Date d'inscription samedi 3 mai 2003 Statut Membre Dernière intervention 5 août 2004
5 août 2004 à 12:10
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! !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
5 août 2004 à 14:02
FileStream fs = new FileStream(LogFile, FileMode.Append);
fs.Seek(0, SeekOrigin.End);
...


Cocoricoooooooo !!!!
0
wipeout Messages postés 18 Date d'inscription samedi 3 mai 2003 Statut Membre Dernière intervention 5 août 2004
5 août 2004 à 14:35
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 !!!!
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
5 août 2004 à 14:37
euh moi ça a fonctionner sans probleme

Cocoricoooooooo !!!!
0
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
5 août 2004 à 14:39
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]
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
5 août 2004 à 14:50
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 !!!!
0
wipeout Messages postés 18 Date d'inscription samedi 3 mai 2003 Statut Membre Dernière intervention 5 août 2004
5 août 2004 à 15:26
le boulet!! !!! J'ai vraiment de la merde dans les yeux.... aujourd'hui


mille excuse.... pour le derangement...
0
Rejoignez-nous