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

VB.NET Discussion :

Message d'erreur : La référence d'objet n'est pas définie


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 68
    Par défaut Message d'erreur : La référence d'objet n'est pas définie
    Bonjour,

    J'ai un fichier que je lit et je ne veut ré-enregistrer qu'a partir de la 5éme ligne. J'utilise donc un compteur pour sa voir ou je me trouve dans mon fichier.

    Arrivé a ce point, je SPLIT les lignes aux "*" et je choisis les morceaux que je veut.

    Mais il m'affiche un message d'erreur que je trouve complétement hors sujet, et je n'arrive donc pas a trouver le problème...

    Voici mon code

    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
    38
    39
    40
     
     
            Dim i As Integer = 0
            Dim Chemin As String
            Dim result As String()
            Dim Fichier As String = ""
     
            Chemin = "c:\test2\" & Me.CB_CODE.SelectedItem & ".txt"
     
            Try
     
                Dim monStreamReader As New StreamReader(Chemin)
                Dim ligne As String
                ligne = monStreamReader.ReadLine()
     
                Do
     
                    ligne = monStreamReader.ReadLine()
     
                    If i > 4 Then
     
                        While ligne <> ""
     
                            ligne = monStreamReader.ReadLine()
                            result = ligne.Split("*")
                            Fichier = Fichier & result(0) & ";" & result(8) & ";" & vbCrLf
     
                        End While
     
                    End If
     
                    i = i + 1
     
                Loop Until ligne Is Nothing
     
                monStreamReader.Close()
     
            Catch ex As Exception
                MsgBox(ex.Message.ToString())
            End Try
    Message d'erreur :
    La référence d'objet n'est pas définie à une instance d'un objet.

    D'après des MsgBox de contrôle, j'ai pu m'apercevoir que la variable Fichier se remplissais correctement...


    Merci d'avance,
    Cordialement.

  2. #2
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Bonjour,

    La référence d'objet n'est pas définie à une instance d'un objet.
    Cette erreur signifie qu'un de tes objets est à null et que tu tentes d'utiliser une méthode sur celui-ci.
    Peux-tu nous fournir la StackTrace de l'erreur (numero de ligne) ?

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 68
    Par défaut
    L'erreur se produit après avoir lu toute les lignes non-vides ( <> "" )

    Il lit toute les ligne puis affiche l'erreur.

    Et lorsque que je supprime ce qu'il y a à l'intérieur du While, plus de message d'erreur.

  4. #4
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Peux tu envoyer la StackTrace quand même

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 68
    Par défaut
    comment je fait pour la récupérer?

  6. #6
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Voila comment on récupère "une trace de pile" d'une exception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            Catch ex As Exception
                MsgBox(ex.Message.ToString())
                MsgBox(ex.StackTrace.ToString())
            End Try

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/11/2011, 18h26
  2. Réponses: 5
    Dernier message: 25/10/2011, 10h31
  3. Réponses: 7
    Dernier message: 31/12/2009, 09h10
  4. Réponses: 20
    Dernier message: 13/08/2007, 16h11
  5. Réponses: 8
    Dernier message: 04/06/2007, 16h20

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