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 :

tableau dans VB.NET


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Par défaut tableau dans VB.NET
    Bonjour,

    j'ai un petit problème lorsque j’exécute mon code l'erreur suivante est affichée:An unhandled exception of type 'System.IndexOutOfRangeException' occurred in tableau.exe

    Additional information: L'index se trouve en dehors des limites du tableau.
    en fait j'ai deux forms et j'ai un bouton ajouter qui permet d'ajouter un utilisateur dans un tableau puis dans un deuxième form le contenu de tableau est affiché
    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
      Private Sub Ajouter_Click(sender As Object, e As EventArgs) Handles Ajouter.Click
            nbrclients += 1
            ReDim Preserve tab(nbrclients)
            With enr
                .nom = TextBox1.Text()
                .prenom = TextBox2.Text()
                .age = CInt(TextBox3.Text)
            End With
            tab(nbrclients) = enr
            raz()
        End Sub
    Private Sub afficher_Click(sender As Object, e As EventArgs) Handles afficher.Click
            Dim x, y As String
            Dim z As Integer
            Dim a As client
            For i = 0 To tab.Length
                MsgBox(tab.Length)
                ' MsgBox(tab(i).nom)
     
                a = tab(i)
                ListBox1.Items.Add(a)
     
                x = tab(i).nom
                ListBox1.Items.Add(x)
                y = tab(i).prenom
                ListBox1.Items.Add(y)
                z = tab(i).age
                ListBox1.Items.Add(z)
                If (i = tab.Length) Then
                    End
                End If
     
            Next
        End Sub

  2. #2
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    tu va trop loin dans ta boucle for, déroule de tête pour comprendre.

  3. #3
    Membre très actif
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Par défaut
    oui j'ai déjà compris que la boucle for dépasse la taille de tableau et j'ai déjà ajouté la condition suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     If (i = tab.Length) Then
                    End
                End If
    mais l'erreur reste encore

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    les indexes commencent à 0
    donc tab(7) ca veut dire tab(0) à tab(6)
    .length retourne 7
    donc tab(7) plante, et ton test est à la fin du code, donc pas atteint

    donc to length - 1

    et l'instruction End arrête le programme complètement


    pour info les tableaux et redim preserve c'est nul et lent => list(of ) à la place
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre très actif
    Inscrit en
    Janvier 2010
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 212
    Par défaut
    ok merci c'est résolu donc la boucle for doit parcourir le tableau jusqu'à length-1

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

Discussions similaires

  1. [Débutant] éclater une chaine dans un tableau en VB.NET
    Par jayrem98 dans le forum VB.NET
    Réponses: 6
    Dernier message: 09/07/2012, 08h36
  2. Création d'un tableau dans un formulaire VB.NET
    Par lamyoutta28 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 16/03/2009, 09h16
  3. Comment creer un tableau dans 1 fichier excel (vb.net)
    Par lolymeupy dans le forum Windows Forms
    Réponses: 1
    Dernier message: 09/01/2009, 10h08
  4. Faire un tableau dans un formulaire VB.net
    Par Nikkobass dans le forum Windows Forms
    Réponses: 9
    Dernier message: 14/08/2007, 09h15
  5. [VB.NET]Générer tableau dans Word !!
    Par mhamdi45 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/07/2006, 17h20

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