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 :

Correspondance structure C et VB.net


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2011
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 60
    Par défaut Correspondance structure C et VB.net
    bonjour, je dois reprendre du code C pour l'adapter en VB.net.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    rom near const struct Parametres Struct_S1 =
    {"Secu S1",	SUP_S1,0,0,1,"",NULL};
    je dois adapter cette structure en VB.net mais je ne sais pas trop comment faire ?
    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
     
    ' déclaration de la structure
    Public Structure Struct_S1
        dim secu as string
        dim SUP_S1 as string
        dim min as integer
        dim max as integer
        dim pas as string
        dim liste as string
    end structure
     
    'initialisation de la structure
    Public StructS1 as Struct_S1
     
    sub initStructS1
        redim StructS1.secu = "Secu S1"
        redim StructS1.SUP_S1 = SUP_S1
        redim StructS1.min = 0
        redim StructS1.max = 0
        redim StructS1.pas = 1
          redim StructS1.liste = null
    end sub
    est ce que c'est comme sa que je dois faire?


    DE plus ensuite j'ai une structure qui fait appelle a d'autre structure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    rom near const struct Parametres *rom Param_Sup_Asc[] =
    {	&Struct_S1,
    	&Struct_S2,
    	&Struct_S3,
    	&Struct_S4,
            ...
    };
    et pour cette partie je ne sais pas du tout comment faire.
    Merci d'avance

  2. #2
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Bonjour,

    Au sein de ta structure, je déclarerai plutôt ses éléments en publique.

    Ensuite dans l’initialisation pas besoin de faire redim, variable="toto" suffit.

    Pour les structures de structures pas de problème,



    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
    Public Structure Parent
     
        nom as string
        prenom as string
     
    end structure
     
    Public Structure Enfant
     
        nom as string
        prenom as string
        age as integer
     
    end structure
     
    Public Structure Famille
     
        pere as Parent
        mere as Parent
        fille as Enfant
        garcon as Enfant
     
    end structure
     
    'initialisation de la structure
    Public MaFamille as Famille
     
    sub initStruct
     
            MaFamille  = New Famille
            MaFamille.pere.nom="toto"
            MaFamille.mere.nom="tata"
     
     
    end sub
    etc etc.

    Par contre dans la déclaration des structures, il faut que la structure qui est un élément d'une autre, soit déclarée avant, sinon il ne la trouvera pas.

    PS, au structure je préfère largement créer une classe, qui avec des méthodes, permet de tout instancier automatiquement (en codant la précédure New()), créer des fonctions et des procédures spécifiques etc...

  3. #3
    Membre averti
    Inscrit en
    Février 2011
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 60
    Par défaut
    tout ceci me parait un peu brouillon mais je vais essayer de m'en sortir avec ce que tu m'as donné..

    De plus j'ai plus de 700 structures filles et environ 50 structures mère donc niveau class ca va etre un peu gros

  4. #4
    Membre averti
    Inscrit en
    Février 2011
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 60
    Par défaut
    bon alors d'apres ce que tu m'as expliquer j'ai essayer quelquechose, pourrais tu me dire si c'est ca ?!

    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
        'format générale de la structure fille
        Public Structure Format_Struct_Param_Sup_Asc
            Dim texte As String
            Dim nom As String
            Dim min As Integer
            Dim max As Integer
            Dim pas As Integer
            Dim liste As String
        End Structure
     
        'structure mère
        Public Structure Param_Sup_Asc
            Dim Struct_S1 As Format_Struct_Param_Sup_Asc
            Dim Struct_S2 As Format_Struct_Param_Sup_Asc
        End Structure
     
        Public ParamSupAsc As Param_Sup_Asc
     
        'initialisation des structures
        Sub initParamSupAsc()
     
            ParamSupAsc = New Param_Sup_Asc
     
            ParamSupAsc.Struct_S1.texte = "SECU S1"
            ParamSupAsc.Struct_S1.nom = SUP_S1
            ParamSupAsc.Struct_S1.min = 0
            ParamSupAsc.Struct_S1.max = 0
            ParamSupAsc.Struct_S1.pas = 1
            ParamSupAsc.Struct_S1.liste = Nothing
     
            ParamSupAsc.Struct_S2.texte = "SECU S2"
            ParamSupAsc.Struct_S2.nom = SUP_S2
            ParamSupAsc.Struct_S2.min = 0
            ParamSupAsc.Struct_S2.max = 0
            ParamSupAsc.Struct_S2.pas = 1
            ParamSupAsc.Struct_S2.liste = Nothing
        End Sub

  5. #5
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    C'est bien ça.

  6. #6
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Pour en revenir sur structure/classe, les gens font comme il prefere... mais par rapport a ton argument sur le "gros" de la classe.

    J'ai envide de dire l'inverse.

    Si tu as 700 structure fille, alors tu auras a faire 700 fois ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     ParamSupAsc.Struct_S1.texte = "SECU S1"
     ParamSupAsc.Struct_S1.nom = SUP_S1
     ParamSupAsc.Struct_S1.min = 0
     ParamSupAsc.Struct_S1.max = 0
     ParamSupAsc.Struct_S1.pas = 1
     ParamSupAsc.Struct_S1.liste = Nothing
    Donc lourd sans parler de la maintenance.

    Par une classe, tu auras comme constructeur:

    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
    Public Class Fille
     
       Public nom as string
       Public min as integer
       Public max as integer
       public pas as integer
       public liste as string
     
       Public Sub new (byval Mon_Nom as string) 
     
            'Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent()
     
            me.nom = Mon_Nom 
            me.min=0
            me.max=0
            me.pas=1
            me.liste=nothing
     
        End sub
     
    End Class

    Et tu auras simplement a faire 700 fois, depuis ta form principal:


    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
     
    Public Class Main
     
          Public fille1 as Fille
          Public fille2 as Fille
          Public fille3 as Fille
          Public fille4 as Fille
          Public fille5 as Fille
     
          Public sub new()
     
              fille1 = New Fille("Sup1")
              fille2 = New Fille("Sup2")
              fille3 = New Fille("Sup3")
              fille4 = New Fille("Sup4")
              fille5 = New Fille("Sup5")
     
           End sub
     
    End Classe
    Sans compté que avec tes variables min, max et pas... il semble que chaque fille aura des opérations...

    Donc tu peux te faire une procedure publique qui va auto incrémenté une valeur facilement:

    plutot que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaStrucure.mafille1.min = MaStrucure.mafille1.min+1

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

Discussions similaires

  1. [VBA-A] correspondance du "Handles" de VB.Net
    Par eultartuffe dans le forum VBA Access
    Réponses: 1
    Dernier message: 13/04/2006, 22h13
  2. Vb.Net et Access : comment modifier la structure d'une base
    Par hucliez dans le forum Accès aux données
    Réponses: 3
    Dernier message: 09/11/2005, 13h33
  3. [C#] Convertion de structure vers Delphi .NET
    Par Laurent Dardenne dans le forum Windows Forms
    Réponses: 21
    Dernier message: 08/01/2005, 02h36
  4. [C++ .NET] Structure dynamique
    Par tidou dans le forum VC++ .NET
    Réponses: 17
    Dernier message: 29/10/2004, 20h08

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