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 :

Se balader dans une structure [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut Se balader dans une structure
    Bonjour,

    Je voudrais savoir s'il existe un moyen de parcourir les items d'une structure par le biais d'une boucle, du genre
    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
     
    Structure mastruct
            Dim item0 as String
            Dim item2 as Boolean
            ...
            Dim item36 as Integer
    End Structure
     
     
    Dim maliste As mastruct
    ... code pour remplir maliste
     
    ' je voudrais faire qqch comme : 
    For i =0 to 36
    Datarow(i) = mastruct.item(i)
    Next
    En clair, dans mon exemple, il s'agit de remplir une ligne de datatable (et donc, in fine, la ligne d'une table de BdD) avec les items de ma structure
    Sans avoir à écrire 37 lignes de code.

    Je suppose que la réponse est : non, ce n'est pas possible.
    Mais dans ce cas, quelle serait la meilleure méthode ?

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    euhhh ..... OUI c'est possible et ça se fait comme ceci :

    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
     
    Imports System.Reflection
     
    Structure mastruct
            Dim item0 as String
            Dim item2 as Boolean
            '...
            Dim item36 as Integer
    End Structure
     
     
    Dim sType As Type = GetType(mastruct)
    For Each fType As FieldInfo In sType.GetFields()
            Msgbox(fType.Name)
    Next
    A+

  3. #3
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Attention, si les champs ne sont pas public, il faut ajouter des flags

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    iFeldInfo[] fields = myType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance);

  4. #4
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Super !!
    Je n'aurais pas trouvé tout seul.
    Il faudra que j'approfondisse ces instructions que je ne connaissais pas.

    Merci de votre aide.

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Oups, je me suis trompé dans l'énoncé de mon pb. Le bon code était celui-ci :
    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
    Structure mastruct
            Dim item0 as String
            Dim item2 as Boolean
            ...
            Dim item36 as Integer
    End Structure
     
     
    Dim maliste As mastruct
    ... code pour remplir maliste
     
    ' je voudrais faire qqch comme : 
    For i =0 to 36
    Datarow(i) = maliste.item(i)
    Next
    En gros ce n'est pas dans la structure que je veux me "balader" mais dans une variable de type structure.

  6. #6
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Ou :

    Je n ai pas mon EDI sous les yeux donc utilises intellisense pour voir les propriétés ou méthodes qu'on te propose


    A+

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

Discussions similaires

  1. Copie d'un buffer dans une structure
    Par KnightsOfTheRound dans le forum C++
    Réponses: 6
    Dernier message: 29/12/2005, 15h00
  2. Réponses: 7
    Dernier message: 21/12/2005, 16h44
  3. Enlver un noeud dans une structure XML
    Par Sharingan dans le forum ASP
    Réponses: 4
    Dernier message: 20/12/2004, 08h08
  4. donée de plusieur vecteur dans une structure ??
    Par lipczynski dans le forum C++
    Réponses: 5
    Dernier message: 13/08/2004, 08h17
  5. type void* dans une structure
    Par barbapapaz dans le forum C
    Réponses: 3
    Dernier message: 16/07/2004, 16h11

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