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 6 et antérieur Discussion :

Tableau dynamique - 2 types


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut Tableau dynamique - 2 types
    J'ai cherché sur le net un bon tutorial sur les tableaux dynamiques en VB6 mais en vain.

    Je voudrais déclarer un tableau dynamique (nb_ligne, 2)

    Je sais d'avance que je n'aurai que deux colonnes.
    Mon problème ne s'arrête pas là.
    Je voudrais en plus que dans mon premier champ, ce soit un Integer, et dans le deuxieme champ, un autre tableau.

    Est-il possible de faire ça en VB6 (sans passer par une classe ou une structure)? J'ai essayé mais en vain.

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    As-tu essayé de déclarer un tableau de Variants?

  3. #3
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Heu non, je ne connaissais pas ce type. C'est quoi un type générique?

    En fait, je viens d'essayer de le déclarer comme Variant, mais je suis confronté à un autre problème. Je n'arrive à redimensionner mon tableau.

    C'est pourtant bien cette syntaxe la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ReDim Preserve monTableau (new_x, new_y)
    Il m'indique que l'indice est en dehors de la plage...

    J'ai mis l'option base 1, je pense que ca ne change grand chose à mon problème.

  4. #4
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Pour mon problème de redimensionnement, je viens peut être de trouver.

    On ne peut redimensionner que la dernière dimension du tableau?

    Et moi j'essayais de modifier le new_x.

    Je corrige ca, et j'essaie de mettre en place le Variant, puis je vous tiens au courant.

  5. #5
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Pour le coup des variant, c'est bon ca a l'air de marcher.


    Autre question :
    Est-il possible d'instancier un tableau en VB6?

    Ce que je voudrai faire, ce que dans mon traitement, si je rencontre une condition, je lui associe un nouveau tableau s'il n'existe pas déjà.

    Un peu comme quand on instancie une nouvelle classe.

    Je n'arrive pas bien à piger cette notion d'instance. C'est possible?

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    bah une solution est de créer une classe qui contient un tableau.
    Et qu'est ce que tu comprends pas au sujet des instances ?

  7. #7
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Ben c'est ce que j'ai fait au final mais merci pour la réponse


    Au sujet des instaces, j'aurai voulu déclarer un tableau en dynamique seulement au moment ou j'en ai besoin.

    Mise a part en mettant un Dim monTAbleau() as Variant au début d'une fonction, je ne vois pas comment faire.

    (Je précise, je débute en VB6...)

  8. #8
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    si je comprend ce que tu veux dire, tu ne veux déclarer qu'un seul tableau en variant, puis lorsque tu en as besoin tu le redimensionnes. Et si tu en as besoin de nouveaux plus tard, tu veux redim le même tableau et le réutiliser sans perdre les données qu'il contient, ai je raison ?
    si c'est le cas, alors tu devrais utiliser des listes, dictionnaire, ou collection pour stocker ton tableau dedans à chaque fois que tu l'as remplis. En VBS je n'ai trouvé que les dictionnaire, je ne sais pas si en VB6 il y a d'autre "liste" utilisable.

  9. #9
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Non, en fait, ce que je veux faire, c'est déclarer un premier tableau avec 2 integer et un tableau, donc 3 colonnes pour n enregistrement.

    Moi je veux pouvoir redimensionner les deux tableaux quand je le veux.

    Le deuxieme tableau est contenu dans l'autre.

    Ce que je voulais faire avec le coup de l'instanciation, c'est le déclarer, l'enregistrer dans le tableau (je l'ai toujours instancier), et quand j'en ai pas besoin, s'il n'est pas instancié, l'instancier et le remplir dynamiquement.

    En fait, je viens du monde C++, j'avais bien l'habitude de faire ca. Mais c'est vrai que les classes gérents très bien ce que je veux faire.

    Mise a part ca, c'est possible de faire ce que je voulais faire ou alors je me suis cramé le cerveau pour rien?

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    Pourquoi ne pas utiliser les collections :

    1 collection avec 3 propriete (2 numeriques et une collection (avec num de ligne comme cle))
    En cle tu n'as qu'a mettre le n° de ligne.

    comme ca tu as ton tableau dynamique

    ajout d'une ligne de ton tab :
    tab.add (num1, num2, objTab2)

    Lire une ligne d'un tableau :
    tab.get(numligne).num1...

    Lire une ligne de ton 2eme tab :
    tab.get(numligne).objTab2.get(numligne2)

    Et voila le tour est joué


    Une collection ca s'instancie.
    Ca se vide
    ET c'est dynamique

    ++

  11. #11
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    je suis d'accord avec spirodeau, c'est un truc dans le genre au quel j'avais pensé.

  12. #12
    Nouveau membre du Club Avatar de _ChToM_
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 111
    Points : 27
    Points
    27
    Par défaut
    Hey, ben ca a l'air de gérer cette histoire de collection.

    Vais essayer de mettre ca en place.

    Merci pour le coup de main.

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/11/2011, 20h53
  2. [Tableaux] Une variable dynamique de type tableau
    Par martin__ dans le forum Langage
    Réponses: 3
    Dernier message: 02/08/2007, 19h22
  3. Réponses: 2
    Dernier message: 10/12/2006, 09h57
  4. tableau dynamique de type void *
    Par Pirion dans le forum C
    Réponses: 7
    Dernier message: 18/11/2006, 12h34
  5. [VBA Excel] Un tableau dynamique dans un type utilisateur?
    Par cyber_N dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/07/2006, 19h51

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