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 :

Passer un nom de tableau en variable


Sujet :

VB.NET

  1. #1
    Membre averti
    Femme Profil pro
    Musicienne
    Inscrit en
    Février 2019
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Portugal

    Informations professionnelles :
    Activité : Musicienne

    Informations forums :
    Inscription : Février 2019
    Messages : 22
    Par défaut Passer un nom de tableau en variable
    Bonjour,
    Je suis une débutante qui utilise VB Net pour des petites applications personnelles.
    Voici mon problème :
    Je cherche à savoir si il est possible de passer le nom d’un tableau comme une variable. Voici ma procédure (simplifiée) :
    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
    Public Sub Pose(Table As String, P As Integer)
            For i = 0 To P
                Select Case Table
                    Case "TablValElbowG"
                        TabVA = TablValElbowG(1, i, P)
                        TabVB = TablValElbowG(2, i, P)
                        TabVC = TablValElbowG(3, i, P)
                    Case "TablValChest"
                        TabVA = TablValChest(1, i, P)
                        TabVB = TablValChest(2, i, P)
                        TabVC = TablValChest(3, i, P)
                    Case "TablValAbdoTwist"
                        TabVA = TablValAbdoTwist(1, i, P)
                        TabVB = TablValAbdoTwist(2, i, P)
                        TabVC = TablValAbdoTwist(3, i, P)
                End Select
                 CreatePz2(TabVA, TabVB, TabVC)
            Next
        End Sub
    Vous voyez que j’utilise toujours la même structure de fonction.
    Le problème, c’est que j’ai plus d’une centaine de tableau différents (pas toujours tous utilisés et que je dois en créer régulièrement des nouveaux) donc un select case énorme que je dois mettre à jour pour chaque nouveau tableau (et que je ne veux pas créer un super tableau en rajoutant un indice supplémentaire car le nom en clair du tableau me permet une meilleure vue de mon travail.)
    Existe-t-il un moyen de faire par exemple (je sais que ça ne marchera pas ainsi !):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Sub Pose(Table As Tableau(3, 999,9), P As Integer)
            For i = 0 To P
                        TabVA = Table(1, i, P)
                        TabVB = Table(2, i, P)
                        TabVC = Table(3, i, P)
                       CreatePz2(TabVA, TabVB, TabVC)
            Next
        End Sub
    Je crois avoir entendu « Dictionnary » ou « Collection », mais je patauge…
    Merci de votre aide.

    Je sais que vous êtes généralement très pédagogue, mais l’informatique n’est pas mon mêtier, je m’en sers pour générer des petits utilitaires pour des créations musicales. Aussi vous seriez aimables si vous me proposiez une procédure « clé en main » car je ne pige rien aux exemples donnés par Microsoft sur leur aide, toujours alambiquée…

    Cordialement,
    Sybelle.

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Ci-joint, le fichier TableauMultiDim.zip. C'est le dossier de développement complet d'un petit programme pour te montrer comment passer un tableau à 3 dimensions à des procédures.

    Le programme :
    1. déclare un tableau à 3 dimensions pour contenir des entiers
    2. le tableau est rempli de valeur
    3. le tableau est affiché ("sur place") pour qu'on puisse vérifier qu'il est bien rempli
    4. le tableau est ensuite passé à une procédure d'affichage
    5. le tableau est ensuite passé à une autre procédure d'affichage
    6. le tableau est passer à une procédure pour être modifié
    7. le tableau est à nouveau passé à une procédure d'affichage pour montrer le résultat de la modification

    Pour faire simple, les affichages se font dans une fenêtre de commande (cf. illustration).

    J'espère que ceci t'aidera ...

    Nom : TableauMultiDim.jpg
Affichages : 181
Taille : 79,8 Ko

  3. #3
    Membre averti
    Femme Profil pro
    Musicienne
    Inscrit en
    Février 2019
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Portugal

    Informations professionnelles :
    Activité : Musicienne

    Informations forums :
    Inscription : Février 2019
    Messages : 22
    Par défaut
    Merci !!!!!
    Réponse ultra rapide, claire, efficace et tellement bien exemplifiée que j'ai (je pense) même trouvé une petite incorrection !
    Dans les sub "AfficheTableau" et "AfficheUnTableau" il faut mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Console.Write(T(P, L, C) & " ")
    et non:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Console.Write(MonTableau(P, L, C) & " ")
    (Jai tout bon ?)
    Mais c'était tellement bien expliqué de ta part que j'ai tout de suite compris !

    En plus j'ai adoré les petites virgules toutes nues dans la définition du "T(,,)".
    C'est ça et le "ByRef" qui manquait à ma maigre culture de programeuse à la petite semaine !

    Encore merci à la Francophonie du "Plat Pays" de la part de la Francophilie du "Petit Pays" (C'est ainsi que l'on surnomme notre Portugal)

    Sybelle

  4. #4
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bravo ! Tu as tout bon ...
    ... et tu dois aussi faire cette correction dans la procédure MultiplieLesValeurs.
    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
        Private Sub MultiplieLesValeurs(ByRef T(,,) As Integer, ByVal Coefficient As Integer)
            Dim P As Integer
            Dim L As Integer
            Dim C As Integer
            Dim NombreP As Integer = T.GetLength(0)
            Dim NombreL As Integer = T.GetLength(1)
            Dim NombreC As Integer = T.GetLength(2)
     
            For P = 0 To NombreP - 1
                For L = 0 To NombreL - 1
                    For C = 0 To NombreC - 1
                        T(P, L, C) = T(P, L, C) * Coefficient
                    Next
                Next
            Next
        End Sub
    Désolé pour cette erreur, c'est l'inconvénient des Copier-Coller, on ne lit plus ce qu'on "écrit" et pas de chance, cela donnait le même résultat parce que la déclaration de MonTableau est générale pour le Module.

    Mes meilleures salutations du pays de Jacques ...

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

Discussions similaires

  1. [Tableaux] Nom d'entrée tableau comme variable
    Par vigon dans le forum Langage
    Réponses: 3
    Dernier message: 09/08/2007, 09h45
  2. [Tableau] Nom de tableau variable
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 17/05/2007, 21h08
  3. passer une chaine contenu dans une variable en nom de variable
    Par spiro13 dans le forum Général Python
    Réponses: 5
    Dernier message: 25/04/2007, 12h14
  4. Possibilité de passer le nom d’une table en variable ??
    Par nicolas310380 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 21/02/2006, 14h12
  5. [FLASH MX] Nom de tableau variable
    Par totoche dans le forum Flash
    Réponses: 1
    Dernier message: 25/11/2005, 16h21

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