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

C# Discussion :

System.IndexOutOfRangeException was unhandled [Débutant]


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2011
    Messages : 44
    Points : 41
    Points
    41
    Par défaut System.IndexOutOfRangeException was unhandled
    Bonjour .

    ou est le problème dans le code suivant?
    toujours affiche un exception
    System.IndexOutOfRangeException was unhandled ; Message=Index was outside the bounds of the array.
    dans la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Console.WriteLine(TStopWords[2]);
    est la valeur de k est toujour 1,

    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
    56
    57
    58
    59
    60
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    using System.Text.RegularExpressions;
     
    namespace ConsoleApplication1
    {
        class Program
        {
            static string[] decoupage(string chaine)
            {
                Regex myRegex = new Regex(@"\d+");
                return myRegex.Split(chaine);
            }
            static void Main(string[] args)
            {
     
                int i = 1;
                    //; i
               // {
                    string a = @"E:\Cat_De_Textes\stopswords.txt";
                    StreamReader Sr = File.OpenText(a);
                    string[] TStopWords = decoupage(Sr.ReadToEnd());
                    Console.WriteLine(TStopWords[2]);
                int k;
                for (k=0 ;k< TStopWords.ToArray().Count(); k++)
                { Console.WriteLine(Sr.ToString()[k]); }
     
                    Console.WriteLine(k);
     
     
                    string nomfichier = "T" + i.ToString();
                    String Path = @"E:\Cat_De_Textes\Corpus\" + nomfichier + ".txt";
                    StreamReader sr = new StreamReader(Path);
                    string SGlob = sr.ReadToEnd();
                    sr.Close();
     
                    //remplacer les StopWords Par ""
                   // for (int j = 0; j < SGlob.Length; j++)
                   // {
                        bool fond = false;
                        string[] SGlobDec = decoupage(SGlob);
                        Console.WriteLine(SGlobDec.Length);
                        Console.ReadKey();
                        foreach (string str in SGlobDec)
                        {
                            for (int h = 0; h < TStopWords.Length; h++) if (str == TStopWords[k]) fond = true;
                            if (fond == true) SGlob = SGlob.Replace(str, " ");
                            fond = false;
     
                        }
     
                 //   } 
               // } 
            }
     
        }
    }

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    TStopWords[2], ça récupère le 3e élément du tableau. S'il y a moins de 3 éléments, ça explose...

    Difficile de t'en dire plus sans savoir à quoi sert ce code et sans connaitre les données du fichier. Essaie de déboguer pas à pas pour regarder ce qui se passe

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2011
    Messages : 44
    Points : 41
    Points
    41
    Par défaut
    Merci tomlev
    Mon fichier "StopsWords.txt" contiens +ieurs mots (>100);
    mais l'operation de decoupage dans un tableaux ça marche pas ;
    A ce que puisque la taille de tableaux no fixée ,
    Ou bien l'alloucation de tableaux ce n'est pas comme ça .
    a ce qu'il y'a autre méthode de réservation d'un tableaux a l'aide de fichier texte(mot par mot).
    merci d'avance

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Ce que je trouve bizarre, c'est ton utilisation de Regex.Split... les mots sont séparés par des chiffres dans ton fichier ? Si ce n'est pas le cas, ta regex est fausse.

    En supposant qu'il y ait un mot par ligne dans le fichier, ce qui me semblerait plus logique, il vaudrait mieux que tu utilises File.ReadAllLines pour le lire, ça te renverrait directement tous les mots sans avoir à faire un Split

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2011
    Messages : 44
    Points : 41
    Points
    41
    Par défaut
    Merci tomlev .
    oui ; mon fichier texte contient les mots ligne par ligne.
    l'utilisation de File.ReadAllLines pour le lire,c'est le bon methode pour ça.

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

Discussions similaires

  1. IndexOutOfRangeException was unhandled
    Par Jinkas dans le forum Accès aux données
    Réponses: 5
    Dernier message: 02/07/2013, 20h04
  2. [Débutant] System.NullReferenceException was unhandled
    Par smart_azo dans le forum C#
    Réponses: 2
    Dernier message: 04/05/2012, 15h27
  3. Erreur: System.IndexOutOfRangeException: CVID
    Par Identifiant dans le forum ASP.NET
    Réponses: 4
    Dernier message: 26/06/2007, 15h49
  4. Réponses: 2
    Dernier message: 11/10/2006, 10h36
  5. Réponses: 1
    Dernier message: 17/09/2006, 10h45

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