rbidocho
Messages postés41Date d'inscriptionjeudi 7 juin 2007StatutMembreDernière intervention15 septembre 2008
-
26 juin 2007 à 14:23
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 7 juin 2010
-
28 juin 2007 à 10:36
Bonjour,
voilà, je souhaite créer un fichier dès l'ouverture de mon MainForm dans lequel je pourrais a tout moment inscrire un évènement qui sera horodaté. Ce fichier devra être accessible depuis les usercontrole, ainsi que les autres form et classes que j'ai dans mon projet.
avez vous déjà des début de solution à ce genre de petit exercice ?
rbidocho
Messages postés41Date d'inscriptionjeudi 7 juin 2007StatutMembreDernière intervention15 septembre 2008 27 juin 2007 à 15:30
Bon alors j'ai trouvé une solution. Je ne sais pas si c'est la meilleur mais bon ça marche.
voici le code de la méthode aoutée dans classe MainForm :
public void Log(string txtMessage)
{
FileStream fSLog; string sFileName Application.ExecutablePath+".log";// Nom du fichier nom de l'executable + .log
if (File.Exists(sFileName)){
fSLog=new FileStream(sFileName,FileMode.Append,FileAccess.Write); //si fichier existe on ajoute
}else{
fSLog=new FileStream(sFileName,FileMode.Create);//sinon on créé
}
StreamWriter sW = new StreamWriter(fSLog);//ouverture du flux d'écriture
sW.WriteLine(DateTime.Now.Date.ToShortDateString()+ " " +DateTime.Now.ToLongTimeString()+ "." +DateTime.Now.Millisecond.ToString("000")+"..."+txtMessage);//inscription du message
sW.Close();//fermeture du lux d'écriture
fSLog.Close();//fermeture du fichier
}
Il faut maintenant que je me penche sur sa durée de vie et/ou sa taille maximale (je parle du fichier).
J'appelle cette méthode n'importe ou dans mon MainForm avec un this.Log(message). Et quand je suis dans une autre classe, UserControl ou autre je fais d'abord un
MachinAppelé.Owner = this dans mon MainForm
puis un
MainForm MF = ((MainForm)(this.Owner))
et MF.Log(Message)
dans la classe appelée.