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

VC++ .NET Discussion :

[C++.NET] erreur "aucune ligne"


Sujet :

VC++ .NET

  1. #1
    Membre confirm�
    �tudiant
    Inscrit en
    Avril 2006
    Messages
    122
    D�tails du profil
    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par d�faut [C++.NET] erreur "aucune ligne"
    Bonjour � tous,
    Alors j'ai une erreur lors de l'execution d'une partie de mon code:
    il me dit qu'il n'y a pas de ligne a la position 2 par exemple.
    Alors que mon tableau (datagrid) comporte bien 3 lignes:
    10 | 10
    20 | 200
    (null) | (null)

    Pourtant j'ai bien quelque chose � la ligne 2 (qui est null normalement).

    Et lorsque je compte les lignes de mon tableau avec:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    int nblignes=fen_carac->Table_asp1->Rows->Count;
    et que je laffiche il mindique qu'il y a 2 lignes.

    Quand il n'y a rien dans mon tableau a part:
    (null) | (null)
    il m'affiche bien 0 lignes.

    J'ai donc essaye de faire ceci:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    int nblignes=fen_carac->Table_asp1->Rows->Count;
    nblignes = nblignes-1;
    Et la pas d'erreur mais le programme plante ou boucle a linfini (je sais pas).

    Je pense que l'erreur vient de ces lignes la:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    for (a=0;a<nblignes;a++)

    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
    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    /////variables pour boucles/////
        int x=0;
        int y=0;
        int i=1;
        int a=0;
        int j=0;
        int k=0;
        ////////////////////////////
        int nbr_comp=0;
        int max=0;
        int min=0;
        int testabs=0;
        int testangle=0;
        int valeur_trouvee=0;
        int nblignes=fen_carac->Table_asp1->Rows->Count;
        float distance=0;
        float precip=0;
        float precipT=0;
        const double PI=3.141592;
     
       for(y=1;y<=(fen_dim->piste_long);y++)
       {
        for(x=1;x<=(fen_dim->piste_larg);x++)
        {
         //Test angle
         testabs = abs((y-(fen_position->pos_long_asp1))/(x-(fen_position->pos_larg_asp1)));
         testangle = abs(Math::Tan((((fen_position->angle1)/2)*PI)/180));
         while(testabs<testangle)
         {
           distance = Math::Sqrt(Math::Pow((x-(fen_position->pos_larg_asp1)),2.0)+(Math::Pow((y-(fen_position->pos_long_asp1)),2.0)));
           distance = Math::Round(distance,1);
           distance = distance*10;
           //min & max de la colonne distance
            for (a=0;a<nblignes;a++)//Pour chaque ligne
            {
             //Selection de la ligne
             DataRow* myRow1 = fen_carac->Table_asp1->get_Rows()->get_Item(k);
             //selection de la colonne 
             String* valeur_distance = myRow1->get_Item(0)->ToString();
             //Conversion de valeur_cellule en int pour traitement math
             nbr_comp = Convert::ToInt32(valeur_distance);
             k++;
             if (nbr_comp<min)
             {
              min=nbr_comp;
             }
             if(nbr_comp>max)
             {
              max=nbr_comp;
             }
            }
            //recup valeur precipitation
            while(distance!=valeur_trouvee)
            {
             for (a=0;a<nblignes;a++)//Pour chaque ligne
             {
              //Selection de la ligne
              DataRow* myRow2 = fen_carac->Table_asp1->get_Rows()->get_Item(j);
              //selection de la colonne 
              String* valeur_distance2 = myRow2->get_Item(0)->ToString();
              //Conversion de valeur_temp en int pour traitement math
              valeur_trouvee = Convert::ToInt32(valeur_distance2);
              j++; 
             }
            }
            j--;
            DataRow* myRow3 = fen_carac->Table_asp1->get_Rows()->get_Item(j);
            //selection de la colonne 
            String* precip_temp = myRow3->get_Item(1)->ToString();
            //Conversion de valeur_cellule en int pour traitement math
            precip = Convert::ToSingle(precip_temp);
            //Addition de precip pour chaque asperseurs
            precipT = precipT + precip;
            i++;
         }
        MessageBox::Show(Convert::ToString(precipT));
        }
       }
       }
    Merci @+++

  2. #2
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut
    Il va falloir que tu nous explique ce que tu comprend par null, car null en Csharp/C/C++ ou bien EN VB : Nothing ben �a veut dire "rien" donc si tu dis que a la ligne 3 de ton tableau il y a : "rien" ben c'est que il n'y a pas de ligne.
    Met donc une valeur valide plutot que de mettre null.

  3. #3
    Membre confirm�
    �tudiant
    Inscrit en
    Avril 2006
    Messages
    122
    D�tails du profil
    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par d�faut
    Bah en fait c'est pas moi qui met "null" il s'y met automatiquement a cause de l'incrementation automatique des lignes. C'est a dire que lorsque jentre une valeur dans ma 1ere ligne, automatiquement une 2eme ligne se cree et ainsi de suite.

  4. #4
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut
    Citation Envoy� par raboin
    Bah en fait c'est pas moi qui met "null" il s'y met automatiquement a cause de l'incrementation automatique des lignes. C'est a dire que lorsque jentre une valeur dans ma 1ere ligne, automatiquement une 2eme ligne se cree et ainsi de suite.
    oui .... c'est juste "visuel" ... elle n'existe pas concretement.

  5. #5
    Membre confirm�
    �tudiant
    Inscrit en
    Avril 2006
    Messages
    122
    D�tails du profil
    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par d�faut
    Oki d'accord ca ne cree pas de nouvelle ligne dans ma datatable.
    Mais pourquoi il y a cette erreur alors?

  6. #6
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut
    Quelle erreur ? celle la : ?
    il me dit qu'il n'y a pas de ligne a la position 2 par exemple.
    Alors que mon tableau (datagrid) comporte bien 3 lignes:
    10 | 10
    20 | 200
    (null) | (null)

    Pourtant j'ai bien quelque chose � la ligne 2 (qui est null normalement).
    Bien tout simplement car il a raison il n'y a rien a la ligne 2
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    ligne 0 :  10 | 10
    ligne 1 :  20 | 200

  7. #7
    Membre confirm�
    �tudiant
    Inscrit en
    Avril 2006
    Messages
    122
    D�tails du profil
    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par d�faut
    Alors ma question devient:
    Comment faire pour eviter qu'il me dise cela alors que j'utilise la fonction count pour compter le nombre de ligne et faire une boucle.
    Le pb c'est qu'il compte le bon nombre de lignes mais il ne sarrete pas.

  8. #8
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    int nblignes=fen_carac->Table_asp1->Rows->Count;
    for (a=0;a<nblignes-1;a++) 
    {
    .....
    }
    �a peut pas boucler a l'infini au niveau de ton for donc forcement c'est que ce que tu as mis a l'interieur de ta boucle qui plante et pour �a ben y'a quand meme le mode debug et c'est la seule mani�re de savoir.

    NB: je me demande pour quoi il y en a plein qui pose des problemes sur leur algorythme de parcours, le mieux c'est d'utiliser le mode debug et pas a pas. Pour connaitre la valeur de chaque variable (ou du moins celles concerner par l'algorythme) a chaque etape du programme. Serait-il possible de faire un petit lien dans la FAQ afin de rediriger ceux qui ne savent pas utiliser le mode DEBUG de VS afin que le probleme se resout de lui meme ou bien que certains puissent nous indiquer des informations plus precises concernants l'origine de leur plantages.

  9. #9
    Membre confirm�
    �tudiant
    Inscrit en
    Avril 2006
    Messages
    122
    D�tails du profil
    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par d�faut
    J'ai mis le nblignes-1 et cela me creer toujours la meme erreur.

  10. #10
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut
    Citation Envoy� par moi
    y'a quand meme le mode debug
    c'est que ce que tu as mis a l'interieur de ta boucle qui plante
    Donc indique ce que tu fait dans ta maudite boucle �a serait plus facile.
    Et sinon, tu peut utiliser le debugage pas � pas de ton Appli, car au moins tu pourrait nous dire a quel endroit est ton probleme car il ne vient pas de ton parcours de ta boucle for.
    Merci d'utiliser le debuger

  11. #11
    Membre confirm�
    �tudiant
    Inscrit en
    Avril 2006
    Messages
    122
    D�tails du profil
    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par d�faut
    J'ai chercher et mon erreur se trouverait sur cette ligne (si je ne me trompe pas):
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    DataRow* myRow2 = fen_carac->Table_asp1->get_Rows()->get_Item(j);
    Donc jai change un truc et jai mis ca:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    MessageBox::Show(Convert::ToString(a));
    DataRow* myRow2 = fen_carac->Table_asp1->get_Rows()->get_Item(a);
    donc si jai 4 valeurs dans mon tableau ca m fais dans ma messagebox:
    0 1 2 3 4
    et ensuite jai mon erreur mais sil fait ca ca veut dire kil passe 5 fois dans ma boucle et donc il cherche la vakeur se trouvant ligne 5 et ne la trouve pas. Car il me dit : aucune ligne a la position 4 ( donc il compte 5).

    Je pense que qu'il faut que je change le
    mais par quoi?

  12. #12
    Membre actif Avatar de netomin
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    81
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 81
    Par d�faut
    raboin a �crit:
    fait ca ca veut dire kil passe 5 fois dans ma boucle et donc il cherche la vakeur se trouvant ligne 5 et ne la trouve pas. Car il me dit : aucune ligne a la position 4 ( donc il compte 5).
    C'est bien tu es arriv� � une bon conclusion!

    Par contre:

    Je pense que qu'il faut que je change le

    Code :
    ()->get_Item(a);
    C'est faux.

    Si tu arrive � la conclusion que ton boucle ne fonctionne pas car il fait 5 tours � la place de 4, tu crois que c'est la bonne reflexion de dire �a..?
    Plut�t je chercherai comme ta dis ekinox17 "avec le debuger" de bien definir d'abord ta boucle et ensuite si tu as des boucles � l'infini de regarder bien si � l'interieur de ta boucle tu ne modifie pas quelque chose qui fait que ton application plante.

    Juste du sens commun!

    � +

Discussions similaires

  1. [Erreur] Aucune ligne � la position 0.
    Par a_ferre dans le forum Windows Forms
    R�ponses: 7
    Dernier message: 03/02/2014, 18h56

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