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

C# Discussion :

Probleme lecture fichier


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    .
    Inscrit en
    Juin 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Juin 2015
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Probleme lecture fichier
    Bonjour tout le monde ,
    Je suis débutant en programmation, j'aimerai apprendre le C#.
    Je souhaite faire un petit programme qui affiche le nombre de caractères dans un fichier mais le mode debug me renvoie le message suivant :

    Une exception non gérée du type 'System.NullReferenceException' s'est produite dans ConsoleApplication2.exe
    Informations supplémentaires*: La référence d'objet n'est pas définie à une instance d'un objet.

    'ConsoleApplication2.vshost.exe' (CLR v4.0.30319: ConsoleApplication2.vshost.exe)*: Chargé 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll'. Chargement des symboles ignoré. Le module est optimisé et l'option du débogueur 'Uniquement mon code' est activée.
    Le programme '[1056] ConsoleApplication2.vshost.exe' s'est arrêté avec le code 0 (0x0).


    Voici le code de mon programme :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.IO;
     
    namespace ConsoleApplication2
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.ForegroundColor = ConsoleColor.Green;
                var x = CharsInFile(@"C:\Users\Vincent\Desktop\C#\FLUX.txt");
                Console.WriteLine(x);
     
            }
           private static int CharsInFile (string path) 
            {
                StreamReader reader = new StreamReader(path);
                string line = "";//Va servir de buffer
                int CharsInLine = 0;
                while (line != null)
                {
                    line = reader.ReadLine();//prends la valeur de la ligne
                    CharsInLine += line.Length;//Compte le nombres de caractères
                    if (line != null)
                    {
                        Console.WriteLine(line);//affichage stdout de la ligne
                    }
                }
                reader.Close();//on ferme avec la methode Close()
                return CharsInLine;//retourne le nombres de chars 
            }
        }
    }
    Microsoft Visual Studio Express 2013 pour Windows Desktop
    Version 12.0.31101.00 Update 4
    Microsoft .NET Framework
    Version 4.5.51650

    Si quelqu'un aurai des tuyaux ça serait vraiment sympa.
    PS: Désolé pour l'orthographe qui pique au yeux

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    Bonjour

    tu te mets en mode debug, et tu fais du debug "Pas à pas".

    Tu mets un point d'arrêt dans ta fonction CharsInLine() et tu avances ligne par ligne pour voir ce qu'il se passe.

    Peut-être que le StreamReader n'est pas valide parce que le fichier n'existe pas (ou que le chemin d'accès au fichier n'est pas correcte).

    Avant de faire une lecture de fichier, je fais TOUJOURS un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(File.Exists(MonFichier))
    Ca évite comme ça les problèmes liés à l’inexistence du fichier à lire
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  3. #3
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 640
    Points : 2 149
    Points
    2 149
    Par défaut
    Bonjour,

    C'est bien de checker si la ligne est null ou pas mais du coup tu essayes quand même d'accéder a sa longueur sans vérification, il te suffit de descendre la ligne qui récupère le nombre de caractères comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                while (line != null)
                {
                    line = reader.ReadLine();//prends la valeur de la ligne
     
                    if (line != null)
                    {
                        CharsInLine += line.Length;//Compte le nombres de caractères
                        Console.WriteLine(line);//affichage stdout de la ligne
                    }
                }
    PS : la prochaine fois pense a indiquer la ligne qui génère l'exception, la c'était un petit bout de code donc pas de soucis mais ça nous aide a aller plus vite pour t'aider .

  4. #4
    Futur Membre du Club
    Homme Profil pro
    .
    Inscrit en
    Juin 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Juin 2015
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup pour votre aide.

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 79
    Points : 118
    Points
    118
    Par défaut
    Salut,

    On peut aussi faire une boucle while de cette façon pour être certain de passer par toutes les lignes !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while(!reader.EndOfStream)
    {
     
    }
    @+,
    Phil

Discussions similaires

  1. [VB]Probleme lecture fichier text et affichage
    Par clochardevobsy dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/03/2006, 08h46
  2. Probleme lecture fichier acces sequentiel
    Par ouar dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 23/09/2005, 13h39
  3. Probleme lecture fichier
    Par CaptainChoc dans le forum C++
    Réponses: 5
    Dernier message: 06/03/2005, 10h40
  4. [LG]probleme lecture fichier
    Par yp036871 dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2004, 19h22
  5. [LG]Probleme lecture fichier file of ....
    Par John_win dans le forum Langage
    Réponses: 11
    Dernier message: 11/11/2003, 18h53

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