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#]récupérer ce qu'il y a ds 1 listbox et le save ds 1 file


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 80
    Points : 48
    Points
    48
    Par défaut [C#]récupérer ce qu'il y a ds 1 listbox et le save ds 1 file
    bonjour,

    Je vous explique, je veux pouvoir récupérer les valeurs d'une listbox et l'enregistrer dans un fichier, alors le format du fichier m'importe qu'il soit xml ou txt. Voici le code que j'ai écrit :
    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
     
    //create a file to save the OS's list
            private void saveOsList()
            {
                string fileOs = "OS.txt";
                fsOS = new FileStream(fileOs, FileMode.CreateNew, FileAccess.ReadWrite);
                //create a streamwriter
                StreamWriter wOs = new StreamWriter(fileOs);
                foreach (ListBox lbOS in lstOS.Items)
                {
                    wOs.Write(lbOS.Text);
                }
                //update underlying file
                wOs.Flush();
                wOs.Close();
            }
    et voici le message d'erreur que j'ai : "the process cannot access the file (le chemin du fichier Os.txt) because it is being used by another process."

    Alors au début j'avais essayé en l'enregistrant en .xml, j'ai eu le même message d'erreur, ensuite c'est là que j'ai essayé en .txt.
    Je me suis demandé aussi que peut être selon le format du fichier, la façon de procédé n'est pas la même.

    Si quelqu'un peut m'aider, merci.

  2. #2
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    Et avec ce code la 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
     
     private void saveOsList()
            {
                string fileOs = "OS.txt";
                //create a streamwriter
                StreamWriter wOs = new StreamWriter(fileOs, FileMode.CreateNew, FileAccess.ReadWrite);
                foreach (ListBox lbOS in lstOS.Items)
                {
                    wOs.Write(lbOS.Text);
                }
                //update underlying file
                wOs.Flush();
                wOs.Close();
            }
    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    ben non, là aussi j'ai le message d'erreur.

  4. #4
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    et avec le FileAccess à Write au lieu de ReadWrite ?

    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    j'ai toujours le message d'erreur en mettant write au fileAcess.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    sauf que là il me dit que le fichier existe déjà, je vais faire une condition pour voir.

  7. #7
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    faut changer le FileMode par OpenOrCreate je pense.

    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    voila ce que j'ai fait et mainenant l'erreur est sur la ligne "StreamWriter wOs = new StreamWriter(fileOs)", il me dit la même chose que tout à l'heure "The process cannot access the file because it is being used by another process.
    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 void saveOsList()
            {
                string fileOs = "OS.txt";
                DialogResult result = MessageBox.Show("Le fichier existe déjà, voulez-vous le remplacer ?", "Attention", MessageBoxButtons.YesNo);
                if (result == DialogResult.Yes)
                {
                            //create a streamwriter
                            StreamWriter wOs = new StreamWriter(fileOs, FileMode.CreateNew, FileAccess.ReadWrite);
                            foreach (ListBox lbOS in lstOS.Items)
                           {
                                    wOs.Write(lbOS.Text);
                           }
                           //update underlying file
                           wOs.Flush();
                           wOs.Close();
                 }
            }

  9. #9
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    oui mais tu as remis le FileAccess.ReadWrite. vu que tu fais que ecrire dedans Write est suffisant à mon avis.

    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    euh non pardon, j'ai fait :

    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 void saveOsList()
            {
                string fileOs = "OS.txt";
                DialogResult result = MessageBox.Show("Le fichier existe déjà, voulez-vous le remplacer ?", "Attention", MessageBoxButtons.YesNo);
                if (result == DialogResult.Yes)
                {
                            //create a streamwriter
                            StreamWriter wOs = new StreamWriter(fileOs, FileMode.Create, FileAccess.Write);
                            foreach (ListBox lbOS in lstOS.Items)
                           {
                                    wOs.Write(lbOS.Text);
                           }
                           //update underlying file
                           wOs.Flush();
                           wOs.Close();
                 }
            }

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    et j'ai tjs cette erreur : " The process cannot access the file because it is being used by another process. " mais cette fois pour cette ligne : "StreamWriter wOs = new StreamWriter(fileOs)"

  12. #12
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    Citation Envoyé par mcay
    et j'ai tjs cette erreur : " The process cannot access the file because it is being used by another process. " mais cette fois pour cette ligne : "StreamWriter wOs = new StreamWriter(fileOs)"
    et dans la liste des process sur ton pc il y en a pas un que tu as mal terminer par hasard et qui est toujours en acces sur le fichier ?
    sinon je vois pas le probleme.

    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    non y a rien, j'ai même redémarrer l'ordinateur, et la 1ère chose que j'ai faite ensuite, c'est d'exécuter, et j'ai tjs le même message.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    voilà ce que j'ai fait maintenant et cette fois-ci j'ai un message d'erreur sur le "foreach(ListBox lbOS in lstOS.Items)", voici le message : "Unable to cast object of type 'System.String' to type 'System.Windows.Forms.ListBox'."

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //create a file to save the OS's list
            private void saveOsList()
            { 
                //create a writer and open the file
                TextWriter twOs = new StreamWriter("OS.txt");
                foreach (ListBox lbOS in lstOS.Items)
                {
                    twOs.WriteLine(lbOS.Text);
                }
                //close the stream
                twOs.Close();
            }

  15. #15
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    dans ton cas je pense que c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    private void saveOsList()
            {
                //create a writer and open the file
                TextWriter twOs = new StreamWriter("OS.txt");
                foreach (string s in lstOS.Items)
                {
                    twOs.WriteLine(s);
                }
                //close the stream
                twOs.Close();
            }
    faut tester pour voir.

    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    je te remercie, effectivement fallait mettre string à la place de ListBox.

    Je te remercie de m'avoir aider.

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

Discussions similaires

  1. [XL-2007] Récupérer les noms de champs access pour ma listbox
    Par louraluy dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/05/2015, 14h09
  2. Récupérer la couleur d'un item d'une listbox
    Par Michelk12 dans le forum C#
    Réponses: 1
    Dernier message: 07/04/2009, 14h24
  3. [VBA-E] Récupérer le nombre d'élément sélectionné d'une Listbox ?
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/01/2007, 18h31
  4. [VBA-E]récupérer le nom des lignes sélectionnées d'une listbox
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 06/06/2006, 12h28
  5. Réponses: 2
    Dernier message: 24/03/2006, 10h55

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