Bonjour à tous,

Je tourne, je vire, depuis 24 h... J'ai lu tous les messages (ou presque) du forum sur le sujet mais rien ne m'apporte de lumière. J'ai cette fameuse erreur : La référence d'objet n'est pas définie à une instance d'un objet et je n'arrive pas à m'en débarasser ! J'en deviens fou. Voilà le code et j'ai beau être pessimiste, je n'arrive pas à y trouver à redire. ( J'ai néanmoins essayé pas mal de combinaisons... )

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
 
 Public Sub ChargeTabPaysLang()
 
        Dim Words() As String
        Dim Word As String = String.Empty
        Dim TabPaysLang(137, 3) as string
        Dim FileString As String = String.Empty
        Dim f As String = My.Application.Info.DirectoryPath & "\_VAR_PAYS_PL.txt"
 
        If File.Exists(f) Then
            System.IO.File.WriteAllText(f, My.Resources._VAR_PAYS_PL)
        Else
            MessageBox.Show("Fichier des Pays -> Langues impossible à trouver..." & vbCrLf & "Désolé...")
            Exit Sub
        End If
 
        'chaque ligne du fichier se présente comme suit : FRANCAIS_FRANCE*France.jpg*18
 
        Dim fr As New System.IO.StreamReader(CStr(f))
        Dim i%
 
        For i = 1 To 137
            FileString = fr.ReadLine
            If FileString = "" Then Exit For
            Words = Split(FileString, "*")
            X = 1
            For Each Word As String In Words
 
              'Il bugue à cette ligne (au mot Word semble-t-il):
 
                If X = 1 Then TabPaysLang(i, 1) = Word
                If X = 2 Then TabPaysLang(i, 2) = Word
                If X = 3 Then TabPaysLang(i, 3) = Word
                X = X + 1
            Next Word
        Next
 
    End Sub
 
'J'ai essayé en indexant les Word :
 
            For Each Word As String In Words
 
              'Il bugue à cette ligne (au mot Word semble-t-il):
 
                If X = 1 Then TabPaysLang(i, 1) = Word(0)
                If X = 2 Then TabPaysLang(i, 2) = Word(1)
                If X = 3 Then TabPaysLang(i, 3) = Word(2)
                X = X + 1
 
            Next Word
 
            'mais ça ne change pas l'erreur. En fait, je ne sais pas trop, compte
            'tenu que c'est dans une boucle For Each, si je dois indexer les Word ou pas.
J'ai essayé ausi en commençant l'indexation des Word à 1 et non plus à 0 (ce qui est faux me semble-t-il) et j'ai toujours la même erreur au même endroit.

Mais, bon... Ça coûtait rien d'essayer (et d'apprendre). De toutes façon, j'ai mis la ceinture en plus des bretelles, au cas où... J'ai mis un compteur (X). C'est pas du pur, pur, travail, mais mon problème, pour l'instant, c'est que ça fonctionne et, surtout, que je comprenne d'où vient l'erreur. Après j'arrangerais tout ça.

Alors si quelqu'un a une idée, elle sera la bienvenue, je vous assure.

D'avance, merci.

[Edit] Personne pour m'aider ? Je sais pourtant, à la lecture de tout ce qui peut exister comme messages de forums que cette exception est très souvent levée. Ça a dû vous arriver.