Manipulation de fichier [Résolu]

- - Dernière réponse : Whismeril
Messages postés
13139
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 avril 2019
- 11 janv. 2013 à 15:15
Bonjour,

Je voudrai insérer un couple de nombres séparés par une virgules dans un fichier puis afficher le contenu du fichier dans un label. La saisie se fait via un textbox. J'ai comme erreur "Impossible de rediriger l'entrée ou la sortie, car le fichier spécifié n'est pas valide" Voici mon code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.IO; 


namespace Exo4
{
    /// <summary>
    /// Logique d'interaction pour MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void boutonEnvoyer_Click(object sender, RoutedEventArgs e)
        {
            string separateur = "[,]"; 
            string fichier = @"C:\data.txt"; 
                    
                    // Pour convertir la ligne saisie en segments et en utilisant la virgule comme séparateur
                    string[] ligne = textBoxCouple.Text.Split(new string[1] { separateur }, StringSplitOptions.None);

                   

                    // Création d'une instance de StreamWriter pour permettre l'écriture de notre fichier 
                    StreamWriter sw = new StreamWriter(fichier);
                    
                    // Ecriture
                    foreach (string l in ligne)
                        sw.WriteLine(l);
                    // Fermeture du StreamReader (attention très important) 
                    sw.Close();

                    // Lecture de toutes les lignes et affichage de chacune sur la page 
                    StringBuilder sb = new StringBuilder();
                    StreamReader sr = new StreamReader(fichier);
                    string s = sr.ReadLine();
                    while (s != null)
                    {
                        sb.AppendLine(s);
                        s = sr.ReadLine();
                    }

                    labelAffichage.Content = sb.ToString();


                    //Console.ReadLine();
               
        }
    }
}

Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
10
3
Merci
Ben comme dit précédemment ton code fonctionne chez moi (juste modifié le chemin du fichier, et labelAffichage.Content en label.Text, Content n'étant pas un attribut valide du contrôle Label).

Fais suivre l'erreur exacte, avec son code, son descriptif et la ligne sur laquelle elle apparaît. On pourra peut-être trouver le problème -et donc sa solution- comme ça. Et au cas où, dis nous aussi quelle version du framework .NET tu utilises.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_jopop
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
10
0
Merci
Salut,

suivant ton SE tu n'as pas le droit d'écrire directement à la racine de ta partition système. Essaie donc déjà de lancer ton programme avec "C:\folder\data.txt" pour voir si ça vient pas de là (en tout cas ton code fonctionne chez moi une fois cette modif faite).
Commenter la réponse de cs_jopop
0
Merci
J'ai toujours la même erreur Jopop même si je change de répertoire de destination
Commenter la réponse de mano23
0
Merci
Merci jojop ca marche j'ai juste recréer la solution.
Commenter la réponse de mano23
Messages postés
13139
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 avril 2019
355
0
Merci
Bonjour,clique sur le bouton "Réponse acceptée" au message de Jojop, le sujet apparaitra résolu.


Whismeril
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.