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 :

L'index se trouve en dehors des limites du tableau [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Téléconseiller
    Inscrit en
    Juin 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Téléconseiller
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2010
    Messages : 119
    Par défaut L'index se trouve en dehors des limites du tableau
    Bonjour, Bonsoir
    je suis désoler de poster encore un sujet mais j'ai vraiment du mal à tout comprendre comme vous le remarquer sûrement. ceci dit,
    mon problème est que j'obtiens une erreur :L'index se trouve en dehors des limites du tableau.
    Mon principe, j'enregistre dans un fichier .txt des données saisis entrer dans des ComboBox ainsi que des TextBox et dans le cas où celles-ci sont vide je les auto rempli avant l'enregistrement.
    J'ouvre ensuite le fichier enregistrer en replaçant les données saisis dans les ComboBox et TextBox correspondant mais j'obtient l'erreur : "L'index se trouve en dehors des limites du tableau." à ma dernière ligne

    voici une parti de mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        Dim MenuCollection As ToolStripItemCollection
        Dim MoisClicker As String = ""
        Dim MoisSélectionner As String = ""
        Dim FSys
        Dim Monfic
    Ici le code permettant l'ouverture de mon fichier et dont j'obtiens mon erreur à la lecture de la ligne "TextBoxCCP19.Text = MyLines(84)" spécifier en rouge ci-dessous
    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
    ' GESTION MENU FICHIER "SELECTION DES MOIS" (Ouvre si existe sinon Créer)
        Private Sub Click_Pour_SousMenusMois(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Novembre2012ToolStripMenuItem.Click, Décembre2012ToolStripMenuItem.Click, Janvier2013ToolStripMenuItem.Click, Février2013ToolStripMenuItem.Click, Mars2013ToolStripMenuItem.Click, Avril2013ToolStripMenuItem.Click, Mai2013ToolStripMenuItem.Click, Juin2013ToolStripMenuItem.Click, Juillet2013ToolStripMenuItem.Click, Août2013ToolStripMenuItem.Click, Septembre2013ToolStripMenuItem.Click, Octobre2013ToolStripMenuItem.Click, Novembre2013ToolStripMenuItem.Click, Décembre2013ToolStripMenuItem.Click
            ' test si le Mois sélectionner existe déjà 
            If System.IO.File.Exists("D:\" & MoisClicker & ".txt") Then
                'spécifie le fichier à lire si existe
                Dim MyLines() As String = {}
                MyLines = File.ReadAllLines("D:\" & MoisClicker & ".txt")
                'Affiche les donner du fichier dans les case correspondante de la form
                'SAISIS RESOURCES & TOTAUX
                TextBoxEspeceMOISPRECEDENT.Text = MyLines(1)
                '.......................
                TextBoxCCP18.Text = MyLines(83)
                TextBoxCCP19.Text = MyLines(84) '"L'index se trouve en dehors des limites du tableau.
            End If
        End Sub
    Ici celui permettant l'enregistrement
    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
     
    'GESTION MENU FICHIER "ENREGISTREMENT" (Enregistre si existe sinon Créer et Enregistre)
        Private Sub Click_Pour_SousMenusEnregistrement(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Novembre2012ToolStripMenuItem1.Click, Décembre2012ToolStripMenuItem1.Click, Janvier2013ToolStripMenuItem1.Click, Février2013ToolStripMenuItem1.Click, Mars2013ToolStripMenuItem1.Click, Avril2013ToolStripMenuItem1.Click, Mai2013ToolStripMenuItem1.Click, Juin2013ToolStripMenuItem1.Click, Juillet2013ToolStripMenuItem1.Click, Août2013ToolStripMenuItem1.Click, Septembre2013ToolStripMenuItem1.Click, Octobre2013ToolStripMenuItem1.Click, Novembre2013ToolStripMenuItem1.Click, Décembre2013ToolStripMenuItem1.Click
            'Rempli TextBox & Combox si el sont vide
            RempliSiVide(SplitContainer1.Panel1)
            RempliSiVide(SplitContainer1.Panel2)
            ' Créer & Enregistre les saisis dans Fichier
            FSys = CreateObject("Scripting.FileSystemObject")
            Monfic = FSys.CreateTextFile("D:\" & MoisSélectionner & ".txt")
            'écris les saisi utilisateur dans le fichier
            With Monfic
                ' SAISIS RESOURCES & TOTAUX
                Monfic.writeLine(TextBoxEspeceMOISPRECEDENT.Text)
                Monfic.writeLine(TextBoxCCPMOISPRECEDENT.Text)
                '.....................
                Monfic.writeLine(TextBoxCCP18.Text)
                Monfic.writeLine(TextBoxCCP19.Text)
            End With
            Monfic.close()
        End Sub
    Et enfin celui de l'auto remplissage des ComboBox / TextBox vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ' PROCEDURE PERMETANT DE REMPLIR TOUTES LES TEXTBOX / COMBOBOX SI ELLE SONT VIDE
        Sub RempliSiVide(ByVal conteneur As Control)
            For Each ctrl As Control In conteneur.Controls
                Select Case True
                    Case TypeOf ctrl Is ComboBox
                        ctrl.Text = "Saisir"
                        ctrl.Enabled = False
                    Case TypeOf ctrl Is TextBox
                        ctrl.Text = "0"
                        ctrl.Enabled = False
                End Select
            Next
        End Sub
    auriez-vous une idées de la maladresse de mon code qui génère cette erreur svp

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Les indices de tableaux ou de listes commencent à 0, donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBoxEspeceMOISPRECEDENT.Text = MyLines(0)

  3. #3
    Membre confirmé
    Homme Profil pro
    Téléconseiller
    Inscrit en
    Juin 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Téléconseiller
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2010
    Messages : 119
    Par défaut
    Citation Envoyé par Graffito Voir le message
    Les indices de tableaux ou de listes commencent à 0, donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBoxEspeceMOISPRECEDENT.Text = MyLines(0)
    Nickel je te remercie de l'information j'avais essayer effectivement cette hypothèse mais sans supprimer "Lynes(84) ce qui fait que sa devais certainement pas passer non plus car trop de lignes et pas assez d'éléments pour les placer en tout les cas MERCI

    je me permet de demander 2 petites chose qui se rejoigne en faite :
    Pourquoi si un ComboBox ou TextBox est vide lors de l'enregistrement de mon fichier.txt j'ai obligatoirement une erreur à sa lecture ???
    et en 2 avec la résolution que tu viens de me rendre je me rend compte que mon code ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ' PROCEDURE PERMETANT DE REMPLIR TOUTES LES TEXTBOX / COMBOBOX SI ELLE SONT VIDE
        Sub RempliSiVide(ByVal conteneur As Control)
            For Each ctrl As Control In conteneur.Controls
                Select Case True
                    Case TypeOf ctrl Is ComboBox
                        ctrl.Text = "Saisir"
                        ctrl.Enabled = False
                    Case TypeOf ctrl Is TextBox
                        ctrl.Text = "0"
                        ctrl.Enabled = False
                End Select
            Next
        End Sub
    efface pas les contenu de mes TextBox situer sur mon Panel1 ( tant mieux c'est ce que je demande si elle sont rempli)
    cependant Tout mes ComboBox et TextBox situer sur un SplitContainer1.Panel1 et SplitContainer1.Panel2 quel soit rempli où non avant l'enregistrement , s'enregistre dans le fichier en ayant comme valeurs "0" et "Saisir" donc pourquoi cela fonctione sur mon panel1 et pas sur SplitContainer1.Panel1 et SplitContainer1.Panel2 ??

  4. #4
    Membre confirmé
    Homme Profil pro
    Téléconseiller
    Inscrit en
    Juin 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Téléconseiller
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2010
    Messages : 119
    Par défaut
    Oura c'était pourtant simple mais je n'y avait vraiment penser ... la résolution est la suivante
    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
    ' PROCEDURE PERMETANT DE REMPLIR TOUTES LES TEXTBOX / COMBOBOX SI ELLE SONT VIDE
        Sub RempliSiVide(ByVal conteneur As Control)
            For Each ctrl As Control In conteneur.Controls
                Select Case True
                    Case TypeOf ctrl Is ComboBox
                        If ctrl.Text = "" Then
                            ctrl.Text = "Saisir"
                            ctrl.Enabled = False
                        End If
                    Case TypeOf ctrl Is TextBox
                        If ctrl.Text = "" Then
                            ctrl.Text = "0"
                            ctrl.Enabled = False
                        End If
                End Select
            Next
        End Sub

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/11/2012, 21h32
  2. Réponses: 2
    Dernier message: 22/05/2012, 11h01
  3. L'index se trouve en dehors des limites du tableau.
    Par kirby33380 dans le forum C#
    Réponses: 3
    Dernier message: 01/04/2010, 11h45
  4. Erreur : "L'index se trouve en dehors des limites du tableau"
    Par dotnetnuke dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 17/07/2009, 17h36
  5. L'index se trouve en dehors des limites du tableau
    Par LaDeveloppeuse dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/10/2007, 21h11

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