cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201360 2 oct. 2006 à 17:42
Je ne peux pas bcp plus t'aider avec si peu d'informations (le probleme doit venir d'ailleurs dans ton programme, car c'est clair que le StreamWriter fonctionne, même si tu lui passes true comme paramètre ).
Peut-etre que c'est un probleme d'Encoding? Mais je ne pense pas...
Petite remarque : oublie string path = "logs\"+DateTime.Now.Day.ToString()+".log";
Utilise string.Format à la place.
cs_coq
Messages postés6351Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014100 2 oct. 2006 à 20:57
Salut,
Histoire d'en rajouter un peu je dirais aussi :
- ne pas utiliser de chemin relatif
- pas d'écriture dans le répertoire d'installation de l'application
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201360 2 oct. 2006 à 17:00
Salut,
Non, ça fonctionne, tu dois faire une autre erreur quelques part d'autre.
Par exemple, comment écris-tu dans le fichier par la suite? Fermes-tu bien le fichier?
VC# forever
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201360 2 oct. 2006 à 17:19
Met un try-catch autour du StreamWriter et regarde si y'a une exception (peut etre des problemes de droit sur le fichier, fichier mal fermé, etc).
sw.Close() et sw = null dans le bloc finally.
Et effectivement, ca serait plus logique d'écrire les données dans un tampon, puis de tout écrire en une fois plutôt que d'ouvrir et fermer à tout vas...
fregolo52
Messages postés1115Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20213 2 oct. 2006 à 17:35
Pas mieux, et pas d'exception.
Par contre, chose très étrange, je trace le démarrage et l'arrêt de l'appli, et dans mes traces j'ai 2 lignes :le stop et le start et le trace d'après écrase tout.
Quand je fais du pas à pas, le 1er new se passe bien : j'ai toujours mon fichier de log, par contre le 2e new supprime le fichier.
Pour le moment, je teste mon module, à terme c'est clair que j'ouvrirai le fichier au démarrage et le fermerai à la fermeture ou à minuit. Mais je me dit qu'en faisant comme ça, je pense que j'aurais jamais vu ce pb.
fregolo52
Messages postés1115Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20213 2 oct. 2006 à 18:02
Ok merci pour ton aide, c'est vrai que je dois avoir une merde ailleurs.
C'est vrai que string.Format, c'est plus propre, pourtant je devrais y être habitué c'est presque comme le printf. Mais bon, des fois, ce sont les vieux démons VB6 qui apparaissent.
fregolo52
Messages postés1115Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20213 3 oct. 2006 à 09:39
Donc, si je comprends bien, pour toi, le plus propre est de mettre les fichiers créés par les applis dans ApplicationData de l'utilisateur courant. Ok, j'en prends note
Merci pour le conseil.
fregolo52
Messages postés1115Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20213 3 oct. 2006 à 10:51
Ca se comprend surtout si c'est un jeu de rôle ou autre GTA, tout perdre après y avoir passé des heures et tout refaire c'est rageant.
J'ai aussi vécu cette désagréable expérience.
fregolo52
Messages postés1115Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20213 3 oct. 2006 à 16:01
Euh oui,
Vu que c'est mon gestionnaire d'erreur et l'erreur peut venir du thread principal ou du thread qui gère ma connexion UDP entre autre.
J'ai mis des delegate dans l'IHM, je sens que je vais aussi en mettre dans la Dll (multithread).
Je crois que je n'ai pas encore d'en apprendre sur le multi-threading.
fregolo52
Messages postés1115Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20213 3 oct. 2006 à 17:07
Merci,
Oui il faut que je me protège de la ré-éntrance, mais dansma phase de test, je suis sure que je ne ré entre pas.
C'est dingue, parallèlement je trace avec la fonction Trace.WriteLine (qui marche) pour analyser le problème, j'ai toujours mon pb même si je suis dans le même Thread (trace start et stop de l'appli), le fichier est écrasé à la 2e instanciation de StreamWriter.
Bref, je vais ouvrir le flux en permanence pour éviter le problème (et ça sera plus propre) en mettant en place le locker, et tout devrait marcher.
fregolo52
Messages postés1115Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20213 3 oct. 2006 à 17:34
Putain c'est pas possible, passer autant de temps sur une connerie pareil !!!!Je ne regardais pas là où il fallait, j'ai un test un peu plus haut dans le code et au lieu de mettre !j'avais mis.
cs_coq
Messages postés6351Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014100 7 oct. 2006 à 12:01
:p
Sinon il me semble qu'utiliser lock sur un champs ThreadStatic ne sert à rien, comme justement il existera une instance par thread.
Je vais essayer d'appronfondir le sujet tiens.