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

Windows Forms Discussion :

[C#]Flux d'écriture et évènement double_click


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 7
    Points : 5
    Points
    5
    Par défaut [C#]Flux d'écriture et évènement double_click
    Bonjour à tous,
    J'utilise l'évènement double_click d'une listview pour ajouter l'élément sélectionné dans un fichier texte. J'utilise un StreamWriter pour qu'à chaque double_click sur un élément, cet élément est ajouté au fichier txt.
    Voici un extrait du code:

    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
     
    private StreamWriter sw  = new StreamWriter ("path");
    private void listView1_DoubleClick(object sender, System.EventArgs e)
    {
        //Collection contenant les éléments Doubleclickés
        ListView.SelectedListViewItemCollection Liste = listView1.SelectedItems;
     
        foreach (ListViewItem item in Liste)
        {
            //écriture dans le fichier 
    	    this.sw.WriteLine(item.Text);
    	    this.sw.Close();
        }
     
    }
    Dans ce cas je peux écrire qu'une fois dans le fichier, au prochain double_click, une erreur est généré car le flux est fermé, ce qui est tout a fait normal.
    Ce que je veux c'est pouvoir écrire un élément dans le fichier à chaque double_click sur l'élément.
    Est-ce qu'il existe une méthode pour Ouvrir un flux?

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Et ca, cela ne fonctionne pas :

    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
     
    private StreamWriter sw;
    private void listView1_DoubleClick(object sender, System.EventArgs e) 
    { 
        //Collection contenant les éléments Doubleclickés 
        ListView.SelectedListViewItemCollection Liste = listView1.SelectedItems; 
     
        sw  = new StreamWriter ("path"); 
     
        foreach (ListViewItem item in Liste) 
        { 
            //écriture dans le fichier 
           this.sw.WriteLine(item.Text); 
        } 
     
          this.sw.Close(); 
     
    }

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Salut
    Cette solution marche mais ya quand meme un hic! à chaque double_click l'ancien élément dans le fichier est effacé pour écrire le nouvel élément, j'aimerais pouvoir garder tous les éléments double_clickés. Pour traiter le fichier plus tard.

  4. #4
    Membre habitué Avatar de del-dongo
    Inscrit en
    Mai 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 147
    Points : 183
    Points
    183
    Par défaut
    pkoi as tu besoin de fermer ton streamwriter à chaque double click...?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 92
    Points : 114
    Points
    114
    Par défaut
    Il y a un paramètre append sur un des constructeurs du streamwritter

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par ld9474
    Il y a un paramètre append sur un des constructeurs du streamwritter
    +1

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 92
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par Morpheus
    +1
    tu comptes les points??

  8. #8
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par ld9474
    Citation Envoyé par Morpheus
    +1
    tu comptes les points??
    Non, ca veut juste dire que je suis d'accord avec lui

  9. #9
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Oui Merci du tuyau ld9474!!!
    J'arrive bien à écrire chaque élément sans effacer les anciens éléments.
    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
     
    private void listView1_DoubleClick(object sender, System.EventArgs e)
    {
        //Collection contenant les éléments Doubleclickés
        ListView.SelectedListViewItemCollection Liste = listView1.SelectedItems;
     
        foreach (ListViewItem item in Liste)
        {
    					using (StreamWriter sw = File.AppendText("path")) 
    					{
    						sw.WriteLine(item.Text);
    					}
        }
     
    }
    Voila le code final

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 92
    Points : 114
    Points
    114
    Par défaut
    Merci de mettre le tag résolu

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

Discussions similaires

  1. Forcer l'écriture sur un flux de sortie ?
    Par Alfred83 dans le forum SL & STL
    Réponses: 3
    Dernier message: 29/05/2007, 12h05
  2. Forcer l'écriture sur un flux de sortie ?
    Par Alfred83 dans le forum C++
    Réponses: 3
    Dernier message: 29/05/2007, 12h05
  3. Réponses: 1
    Dernier message: 12/01/2007, 18h24
  4. Pb flux écriture
    Par philobedo dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 10/06/2006, 16h10
  5. Réponses: 5
    Dernier message: 20/03/2006, 12h35

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