Aide pour une erreur l'index se trouve en dhors des limites du t

Fermé
hamid-ma Messages postés 16 Date d'inscription mardi 16 février 2016 Statut Membre Dernière intervention 27 avril 2016 - Modifié par pijaku le 2/03/2016 à 16:09
hamid-ma Messages postés 16 Date d'inscription mardi 16 février 2016 Statut Membre Dernière intervention 27 avril 2016 - 2 mars 2016 à 16:51
Bonjour,
Svp si quelqu'un peut m'aider pour résoudre une erreur qui me bloque , qu on je lance mon programme il m’affiche cette erreur "l'index se trouve en dohors des limites du tableau"
voila mon script :
=================================================
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Tmax As Double
        Dim tmin As Double
        Dim t As Integer
        Dim ttmax As Double
        Dim ttmin As Double
        Dim arr_Wetterdaten(t, 3) As Double
        Tmax = Double.Parse(TextTmax.Text)
        tmin = Double.Parse(TextTmin.Text)
        '  t = Double.Parse(textTemps.Text)
        ttmax = Double.Parse(Textmax.Text)
        ttmin = Double.Parse(Textmin.Text)
        For t = 3 To 858 Step 2

            'arr_Wetterdaten(t, 4) = ((((Tmax - tmin) / 2) * Math.Sin((3.14 / 12) * (arr_Wetterdaten(t, 3) - (ttmax + ttmin) / 2)) + (Tmax + tmin) / 2))
            '    arr_Wetterdaten(1, 1) = ((((Tmax - tmin) / 2) * Math.Sin((3.14 / 12) * (7 - (ttmax + ttmin) / 2)) + (Tmax + tmin) / 2))
            arr_Wetterdaten(t + 1, 4) = ((((Tmax - tmin) / 2) * Math.Sin((3.14 / 12) * (arr_Wetterdaten(t + 1, 2) - (ttmax + ttmin) / 2)) + (Tmax + tmin) / 2))
        Next t
    End Sub
===================================================================================================
merci bcp

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
2 mars 2016 à 16:09
Bonjour,

Il est recommandé, lorsque l'on boucle sur les limites d'une variable tableau, de ne pas utiliser des valeurs en "dur".

Exemple :
For t = 3 To 858 Step 2

En utilisant un tel code, si ta variable tableau à pour indice maximum 855, ça va bugguer à coups sur.

Par conséquent, il convient d'utiliser LBound (borne inférieure) et UBound(Borne supérieure) comme ceci :

For t = LBound(arr_Wetterdaten) To UBound(arr_Wetterdaten) Step 2


ou encore :
For t = LBound(arr_Wetterdaten) To UBound(arr_Wetterdaten) -1 Step 2
0
hamid-ma Messages postés 16 Date d'inscription mardi 16 février 2016 Statut Membre Dernière intervention 27 avril 2016
2 mars 2016 à 16:21
merci bcp pijaku ça a bien merci..plus d erreur plus d’avertissements...mais le soucie plus de résultats aussi :/
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
2 mars 2016 à 16:44
mais le soucie plus de résultats aussi :/

Ben oui.

Ton tableau est-il dimensionné?
Ce code, si t n'est rien, ne fonctionne pas :
Dim arr_Wetterdaten(t, 3) As Double


Pour le coup, essaie avec des valeurs en dur :
Dim arr_Wetterdaten(800, 3) As Double

0
hamid-ma Messages postés 16 Date d'inscription mardi 16 février 2016 Statut Membre Dernière intervention 27 avril 2016
2 mars 2016 à 16:51
rebonjour merci encore une fois, j'ai essayer ta proposition il m'affiche "l'exception invalidOperationException n'a pas été gérée "

je viens de poser une question avec une prise d'écran, de mon programme, je c'est mm pas mon tableau et dimensionné ou pas, j travail sur un programme qui été développer en Allemagne du coup j trouve un peu mal a comprendre les sripts
0