[C#]: problème lors de l'ecriture dans un fichier

Signaler
Messages postés
89
Date d'inscription
mardi 19 janvier 2010
Statut
Membre
Dernière intervention
21 juin 2016
-
Messages postés
89
Date d'inscription
mardi 19 janvier 2010
Statut
Membre
Dernière intervention
21 juin 2016
-
er
bonjour à tous,
je suis débutant en C# et j'ai un petit souci lorsque j'écris dans un fichier, je m'explique:
je désire lire un fichier texte, faire quelques traitements sur une de ces colonnes et puis ecrire le résultat dans un fichier en reprenant le fichier original plus le traitement effectué sur le colonne.
le traitement se passe bien (l'affichage sur la console est correcte), par contre mon fichier de sortie ne contient qu'une seule ligne (alors que si je demande l'affichage sur la console, j'en ai des milliers)
voici ma fonction qui me permet l'ecriture dans un fichier:


static void writeDom(string p, string dom)
{            
    StreamWriter wDom = new StreamWriter(p.ToString()+".dom.txt");
            
    wDom.WriteLine(dom);
    //Console.WriteLine(dom);
    Console.WriteLine("Pregoression en cours...");
    Console.ReadLine();
 
    wDom.Close();
}


sachant que qu'elle prend deux arguments: p= chemin du fichier d'origine, et dom qui est une variable qui contient les traitements effectués sur le fichier (fichier + la colonne modifiée)
quelqu'un peut-il m'aider?
merci d'avance.

6 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
Bonjour,

Le fichier ne contient pas l'intégralité des données même après exécution de la méthode Close ?


/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
89
Date d'inscription
mardi 19 janvier 2010
Statut
Membre
Dernière intervention
21 juin 2016
2
le fichier contient qu'une seule ligne. comme je l'expliquait dans le message, console.writeline(dom) me renvoi des milliers de lignes alors que le fichier de sortie ne contient qu'une seule ligne... je trouve ce comportement très bizarre!! je n'arrive pas à détecter ce qui cloche.
merci pour votre aide.
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
Oui, ma demande de précision portait sur le moment où le fichier est ouvert pour vérification : avant ou après l'appel de la méthode StreamWriter.Close ?

Que donne ce code ? :

        static void writeDom(string p, string dom)
        {
            using (StreamWriter wDom = new StreamWriter(p.ToString() + ".dom.txt"))
            {
                wDom.WriteLine(dom);
                //Console.WriteLine(dom);
            }

            Console.WriteLine("Pregoression en cours...");
            Console.ReadLine();
        }




/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
89
Date d'inscription
mardi 19 janvier 2010
Statut
Membre
Dernière intervention
21 juin 2016
2
j'ai essayé le code mais cela ne change rien du coté de la sortie (toujours une seule ligne). par contre (et je crois que c'est logique) au niveau de la console, j'ai "progression en cours..." qui s'affiche ! l'affichage est permanent...
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
une seule ligne avec le contenu de toutes les lignes ou seulement la première ligne (ou la dernière) ?


/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
89
Date d'inscription
mardi 19 janvier 2010
Statut
Membre
Dernière intervention
21 juin 2016
2
il y a juste une ligne.
pour ce qui est de laquelle?? le contenu de la ligne change a chaque fois que je lance le programme.