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] Probleme comprehension de code


Sujet :

VC++ .NET

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  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] Probleme comprehension de code
    Bonjour � tous,
    Alors voila je n'arrive pas a comprendre cette ligne:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    tab_recup_data[i]=*dynamic_cast<__box*>(myRow->Item[myCol]->ToString());
    En fait je sais pas du tout dans quel ordre il me met mes valeurs dans le tableau et comment puis je y acceder.

    Je joins tout le reste du code pour une meilleure comprehension.
    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
     
    private:
     void PrintRows(DataSet* myDataSet){
     
         int i=0;
         float tab_recup_data __gc[] = new float __gc[100];
        // For each table in the DataSet, print the values of each row.
     
        System::Collections::IEnumerator* myEnum = myDataSet->Tables->GetEnumerator();
        while (myEnum->MoveNext())
        {
           DataTable* thisTable = __try_cast<DataTable*>(myEnum->Current);
           // For each row, print the values of each column.
           System::Collections::IEnumerator* myEnum1 = thisTable->Rows->GetEnumerator();
           while (myEnum1->MoveNext())
           {
              DataRow* myRow = __try_cast<DataRow*>(myEnum1->Current);
              System::Collections::IEnumerator* myEnum2 = thisTable->Columns->GetEnumerator();
              while (myEnum2->MoveNext())
              {
                 DataColumn* myCol = __try_cast<DataColumn*>(myEnum2->Current);
                tab_recup_data[i]=*dynamic_cast<__box*>(myRow->Item[myCol]->ToString());
                 i++;
              }
            }
        }

  2. #2
    Xno
    Xno est d�connect�
    Membre �clair�
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    71
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Par d�faut
    Salut,

    Pouaaah, du C++ manag�, ce n'est pas ma tasse de th�, mais je vais essayer de te r�pondre...

    D'apr�s le code, tu cycles les tables existantes � partir d'un dataset, puis les lignes, et enfin les colonnes.

    Ce qui est bizarre, c'est que tu fasses un ToString() sur la valeur du champ que tu r�cup�res pour ensuite le sauvegarder dans le tableau de flottants tab_recup_data.

    Maintenant tout d�pend ce que tu veux faire. Si tu veux r�cup�rer un seul champ mais de toutes les lignes, il ne faut pas garder la boucle sur les colonnes, mais la boucle sur les lignes, et acc�der � la valeur du champ via son nom:

    int tab_recup_data __gc[] = new int __gc[ 100 ];

    DataRow* myRow = __try_cast<DataRow*>(myEnum1->Current);
    System::Collections::IEnumerator* myEnum2 = thisTable->Columns->GetEnumerator();
    while (myEnum2->MoveNext())
    {
    tab_recup_data[ i ] = *<dynamic_cast<__box int*>myRow->Item[ S"NomDuChamp" ];
    i++;
    }
    Dans cet exemple, le champ "NomDuChamp" est de type int.

    Regarde voir cette exemple de Microsoft si �a peut t'aider: http://support.microsoft.com/default...%3Bfr%3B818779

  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 je veux recuperer chaque valeur de chaque cellule, je pense que c'est un bon moyen pour le faire non???

  4. #4
    Xno
    Xno est d�connect�
    Membre �clair�
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    71
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Par d�faut
    Pour la r�cup�ration de tous les champs, tu peux utiliser un DataGrid pour visualiser une table enti�re.

    Pour r�cup�rer les lignes et les colonnes, il faut faire un tableau 2D, genre

    String* tab_recup_data __gc[,] = new String* __gc[ 100, 100 ];

    Ensuite, tu ajoutes une variable j pour cycler sur les lignes:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     int j = 0;
     
    while( myEnum1->MoveNext() )
    {
     DataRow* myRow = __try_cast<DataRow*>( myEnum1->Current );
     System::Collections::IEnumerator* myEnum2 = thisTable->Columns->GetEnumerator();
     while( myEnum2->MoveNext() )
     {
       DataColumn* myCol = __try_cast<DataColumn*>(myEnum2->Current);
       tab_recup_data[ i, j ] = *dynamic_cast<__box*>( myRow->Item[ myCol ]->ToString() );
       i++;
     }
     j++;
    }
    Ce code est � prendre avec des pincettes car, d'une part je ne l'ai pas test� et d'autre part, je ne suis pas un habitu� du code manag�.

    Pour les champs, tu dois les r�cup�rer dans l'ordre o� ils sont affich�s dans ton designer de base de donn�es. Pour les lignes, je ne peux pas te dire comment c'est class�: peut-�tre en ordre croissant en fonction du premier champ disponible...?

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [D�butant] VB.NET probleme dossier code source sur disque reseau
    Par ViniVidiVici dans le forum VB.NET
    R�ponses: 8
    Dernier message: 31/10/2011, 16h06
  2. Probleme de comprehension de code
    Par joxbl dans le forum Langage
    R�ponses: 2
    Dernier message: 30/05/2006, 19h58
  3. [VB.NET] Probleme de cr�ation d'une picturebox dans le code
    Par stringman62 dans le forum Windows Forms
    R�ponses: 5
    Dernier message: 07/02/2006, 16h56
  4. [VB.Net] Probleme popup code behind
    Par balibo dans le forum ASP.NET
    R�ponses: 19
    Dernier message: 17/10/2005, 12h22
  5. [VB.Net] Probleme avec dialogues (confirm et alert)
    Par crackity_jones666 dans le forum ASP.NET
    R�ponses: 5
    Dernier message: 26/11/2003, 22h05

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