Manipulation de fichier [Résolu]

mano23 - 9 janv. 2013 à 04:18 - Dernière réponse : Whismeril 12033 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 25 septembre 2018 Dernière intervention
- 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
cs_jopop 1540 Messages postés lundi 26 mai 2003Date d'inscription 1 août 2013 Dernière intervention - 9 janv. 2013 à 15:32
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.

Merci cs_jopop 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de cs_jopop
cs_jopop 1540 Messages postés lundi 26 mai 2003Date d'inscription 1 août 2013 Dernière intervention - 9 janv. 2013 à 09:45
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
Whismeril 12033 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 25 septembre 2018 Dernière intervention - 11 janv. 2013 à 15:15
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.