IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Incroyable bug ou erreur débile ?


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 48
    Points : 53
    Points
    53
    Par défaut Incroyable bug ou erreur débile ?
    Bonjour,


    je suis actuellement en train de programmer un programme plutôt compliqué, et je souhaitais exporter les résultats renvoyés dans un fichier.

    Pour cela, je voulais classiquement utiliser la classe StreamWriter

    Typiquement, je voulais inscrire des fichiers de 100 valeurs. Mais comme je constatais que mon programme s'arrêtait après 90 valeurs, j'ai commencé à m'interroger.


    Du coup j'ai changé les paramètres du programme (j'ai rentré 50 valeurs) pour comprendre le problème et là...

    Mon programme n'a plus rien écrit dans le fichier. Il s'est contenté de créer le fichier texte, sans rien mettre dedans.

    comme le nombre de valeurs ne rentrait absolument pas en compte, j'a commencé à flipper et à faire des tests.

    Maintenant, j'ai l'impression que ma méthode StreamWriter.WriteLine() ne marche plus du tout.

    Ainsi, ce programme (pourtant plutôt basique ) foire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.IO;
     
    namespace ConsoleApplication4
    {
        class Program
        {
            static void Main(string[] args)
            {
     
                StreamWriter sw = new StreamWriter("C:\\USERS\\AllDocsAWenger\\Test.txt");
     
                sw.WriteLine("This is a test");
     
            }
        }
    }

    Il crée bien le fichier "Test.txt", mais il n'écrit rien dedans.


    Est ce que quelqu'un a déjà eu ce problème ?
    Est ce que quelqu'un a ne serait ce qu'une piste d'explication ?
    Est ce que quelqu'un a un plan alternatif pour moi (qui écrirait dans un fichier sans utiliser cette fonctionnalité un peu buggée) ?

    Voilà, j'ai jamais été confronté à un truc aussi déroutant. Merci d'avance pour toutes vos tentatives d'explications.

    PS : je compile sous Windows avec Microsoft Visual Studio

    PPS : peut être un indice pour vous, sherlock holmes des point-virgules : du temps ou mon programme écrivait encore quelque chose dans le programme, il atendait la fin du programme pour l'écrire (i.e. il créait le fichier dès qu'il passait par la ligne de code lui demandant, mais ce fichier restait vide jusqu'à la fin du programme (j'avais un readline à la fin du programme donc ca restait vide jusqu'à ce que je presse Enter). De plus, si je terminais le programme en fermant la console (au lieu d'appuyer sur Enter), rien ne s'écrivait jamais dans le fichier.

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    salut

    faudrait fermer ton StreamWriter

    The Monz, Toulouse

    [edit]

    ce qui tendrait prouver que c'est pas incroyable... donc....

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Salut,

    Je suppose que ce n'est qu'une histoire de tampon à flusher. La classe StreamWriter doit avoir un tampon mémoire dans lequel elle conserve ce que tu veux écrire et il faut à la fin de tes opérations que ce tampon mémoire soit écrit dans ton fichier. Ton StreamWriter a peut-être une fonction Flush mais il a surement une fonction Close ou Dispose qui devrait régler ton pb.

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Points : 706
    Points
    706
    Par défaut
    La méthode Flush n'est utile que lorsque l'on a plusieurs Stream et que l'on souhaite transférer les données de l'un vers l'autre...

  5. #5
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    C'est surtout que Close appelle Flush automatiquement ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Continuum] [1.1-alpha-2] BUG OU ERREUR
    Par marcxa44 dans le forum Intégration Continue
    Réponses: 1
    Dernier message: 28/06/2007, 11h21
  2. bug sans erreur de syntaxe
    Par gayannee dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 07/12/2006, 00h35
  3. [Continuum] Bug ou erreur de configuration ?
    Par elitost dans le forum Intégration Continue
    Réponses: 2
    Dernier message: 15/08/2006, 23h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo