Manipulation de fichier

Résolu
mano23 - 9 janv. 2013 à 04:18
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 - 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();
               
        }
    }
}

5 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
9 janv. 2013 à 15:32
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.
3
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
9 janv. 2013 à 09:45
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).
0
J'ai toujours la même erreur Jopop même si je change de répertoire de destination
0
Merci jojop ca marche j'ai juste recréer la solution.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
11 janv. 2013 à 15:15
Bonjour,clique sur le bouton "Réponse acceptée" au message de Jojop, le sujet apparaitra résolu.


Whismeril
0
Rejoignez-nous