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 :

Copier le contenu de la console dans un fichier texte


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 72
    Points : 51
    Points
    51
    Par défaut Copier le contenu de la console dans un fichier texte
    Bonjour,

    Je suis actuellement en train de développer une application en C#.
    Le temps de traitement de cette application étant très long (plusieurs heures), et le nombre de lignes affichées dans la console étant très élevé (des milliers), j'aimerais que mon application copie toutes les informations affichées dans la console dans un fichier texte.

    Quelqu'un aurait t-il une solution simple pour faire ce que je souhaite ?

    Merci d'avance !

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 90
    Points : 214
    Points
    214
    Par défaut
    Pourquoi ne pas écrire directement dans un fichier texte au lieu d'écrire dans la console ? Sinon il y a des fonctions dans la classe Console qui permettent d'ouvrir les flux d'entrée et de sortie.

  3. #3
    Invité
    Invité(e)
    Par défaut
    tu dois te baser sur la propriété SetOut de la classe Console pour rédiriger tes sorites.

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 72
    Points : 51
    Points
    51
    Par défaut
    Ok. Merci.
    Je vais essayer avec la propriété SetOut.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 72
    Points : 51
    Points
    51
    Par défaut
    D'après ce que j'ai trouvé sur la propriété SetOut, elle permet de rediriger soit vers la console, soit vers un fichier, mais pas vers les deux simultanément ?
    Dites-moi si je me trompe...

  6. #6
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Le mieux est de mettre en place un framework de log comme par exemple log4net

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 90
    Points : 214
    Points
    214
    Par défaut
    Citation Envoyé par Morgan7469 Voir le message
    D'après ce que j'ai trouvé sur la propriété SetOut, elle permet de rediriger soit vers la console, soit vers un fichier, mais pas vers les deux simultanément ?
    Dites-moi si je me trompe...
    Autant que je sache ce n'est pas possible d'écrire dans deux flux simultanément. Il faut ouvrir deux flux et faire deux write. Sous dos c'était déjà comme ca :

    echo "toto" > temp.txt

    => "toto" n'apparait plus à l'écran car le flux est redirigé vers un fichier.

  8. #8
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par captainKirk Voir le message
    Autant que je sache ce n'est pas possible d'écrire dans deux flux simultanément. Il faut ouvrir deux flux et faire deux write. Sous dos c'était déjà comme ca :

    echo "toto" > temp.txt

    => "toto" n'apparait plus à l'écran car le flux est redirigé vers un fichier.
    Oui et non!
    Tu peux faire un flux qui aggrège des sous flux! Après, ca demande en effet un peu de travail.

  9. #9
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Points : 766
    Points
    766
    Par défaut
    Tu peux faire une fonction qui prend en entrée du texte, et dans la fonction tu écris dans la console ET dans ton fichier log.

    Lorsque tu veux afficher quelques choses tu passes par ta fonction.
    Les fautes d'orthographes sus-citées sont déposées auprès de leurs propriétaires respectifs. Aucune responsabilité n'est engagée sur la lisibilité du message ou les éventuels dommages qu'il peut engendrer.

  10. #10
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut console,fichier sortie texte
    bonjour Morgan, ca me rappelle la morgan bank ,tres sulfureux,
    passons au bon vieux souvenir du fortran et du bon temps ou on ecrivait simplement avec les pipes dos et la fenetre desolante console:
    c:\>prog1.exe >con >temp.txt
    on pouvait meme envoyer le flux de sortie de prog1.exe dans un prog2.exe
    c:\>prog1.exe >con >temp.txt>prog2.exe
    bien sur le format du fichier temp.txt etait ecrit d'une maniere à etre lue par prog2.exe

    eh bien, puisque il faut ruser rusons (dixit la fontaine il y a 500 ans),mais toujours vraie :
    -executer l'appli comme un programme externe à lancer du repertoire debug
    proprietes ->executer un prog. externe>path\debug\app.exe->ok
    -arguments ligne de commde: >temp3.txt

    executer l'application en mode debug normalement et l'application externe s'executera en parallele.
    bien sur il faut regenerer pour avoir un exe valide dans dossier debug.

    ici exemple teste fonctionnel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    Public Class Form1
     
        Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Console.WriteLine("bonjour vieux temps ")
            Console.WriteLine("Rebonjour C# et VB")
            Console.WriteLine("temp3.txt contient tout ca....merveilleux")
        End Sub
     
    End Class
    le resultat dans temp3.txt

    bonjour vieux temps
    Rebonjour C# et VB
    temp3.txt contient tout ca....merveilleux

    merci à Jean de Lafontaine qui veille avec nous...baraki de sidi Lafontaine .
    bonne soiree...et bon code ...bonne annee...

  11. #11
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 72
    Points : 51
    Points
    51
    Par défaut
    Merci à tous pour vos réponses.
    Je vais d'abord essayer la méthode de PatteDePoule, qui me paraît être la plus simple !

  12. #12
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 72
    Points : 51
    Points
    51
    Par défaut
    J'ai gardé la méthode de PatteDePoule qui est très simple d'utilisation et qui fonctionne à merveille
    La voici (pour ceux qui ça intéressera) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    StreamWriter sw = new StreamWriter("Fichier.txt");
     
    Affiche(chaine, sw); // Au lieu de faire Console.WriteLine(chaine);
     
    sw.Close();
     
    static void Affiche(string chaine, StreamWriter sw)
    {
        sw.WriteLine(chaine);
        Console.WriteLine(chaine);
    }
    Merci à tous ceux qui m'ont aidé.
    Et de joyeuses fêtes à tout le monde !

  13. #13
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 85
    Points : 38
    Points
    38
    Par défaut
    bonjour,
    s'il vous plai quelqu'un qui peut me dire comment je declare le streamWriter?

  14. #14
    Invité
    Invité(e)
    Par défaut
    tu trouveras ton bonheur ici.

  15. #15
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 456
    Points : 384
    Points
    384
    Par défaut
    salut,
    tu peux utliser une boucle for ou while et ecrire dans fichier text a l'aide du class streamwriter sw=File.open("temp.txt",filemode.open);
    sw.writeline("--------") et tu entre tes variables au lieu du ----.
    tu peux faire mode open ou append ,
    append c.a.d de continuer l'ecriture,
    open faite delete toute le contenu du fichier s'il existe avant,

  16. #16
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 85
    Points : 38
    Points
    38
    Par défaut
    s'il vous plait comment je l'a crai la classe stream?

  17. #17
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 456
    Points : 384
    Points
    384
    Par défaut
    pour ouvrir la classe strem il faut faire declaration en haut du page du programmation using System.IO

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/04/2009, 09h49
  2. Copier le contenu d'une ArrayList dans un fichier texte. Manque du texte.
    Par Pierre8r dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 08/08/2008, 20h32
  3. enregistrer le contenu d'un Edit dans un fichier texte
    Par tapouni dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/05/2008, 23h02
  4. Réponses: 1
    Dernier message: 29/09/2007, 09h46
  5. Enregistret le contenu d'un edit dans un fichier text
    Par prison_break dans le forum C++Builder
    Réponses: 19
    Dernier message: 02/01/2007, 13h55

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