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 de deux dimensions


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 5
    Points
    5
    Par défaut tableau dynamique de deux dimensions
    Bonjour ,
    ma question est la suivante.
    peut on déclarer un tableau à deux dimensions accessible dans toute l'application (donc en global),et si oui comment.
    j'ai essayé tout ce qui me vient en tête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       global tableau ()() as string
       global tableau (6)() as string
       global tableau (6,) as string
    et tjrs une erreur.
    Sur le net je vois rien de bons.
    Avez vs une solution??
    Merci d'avance

  2. #2
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Public, dans un module standart.

    1er cas
    syntaxe () pour un tableau à 1 ou plusieurs dimensions
    Si le tableau est prédimensionné, il ne peut plus être redimensionné ultérieurement

    2ème cas
    Syntaxe ()() => il s'agit de tableaux imbriqués (peu maniables)

    ex
    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
    Public tableau() As String  'ou
    Public tableau1(6, 2) As String
     
    Public tableau2()
     
    Sub exemple1()
     
        ReDim tableau(6, 2) ' equivalent à tableau1 mais redimensionnable dynamiquement
    End Sub
     
     
     
    Sub exemple2()
        ' Tableaux imbriqués
        Dim incTableau() As String 
     
        ReDim tableau2(6)
        For x = 0 To 6
            ReDim incTableau(x)
            incTableau(x)=x
            tableau2(x) = incTableau
        Next
     
        Debug.Print tableau2(1)(1)
    End Sub

  3. #3
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Et pour le rendre global à ton application, il faut ajouter un module à ton application et y mettre les déclarations données par DarkVader

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par DarkVader Voir le message
    Public, dans un module standart.

    1er cas
    syntaxe () pour un tableau à 1 ou plusieurs dimensions
    Si le tableau est prédimensionné, il ne peut plus être redimensionné ultérieurement

    2ème cas
    Syntaxe ()() => il s'agit de tableaux imbriqués (peu maniables)

    ex
    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
    Public tableau() As String  'ou
    Public tableau1(6, 2) As String
     
    Public tableau2()
     
    Sub exemple1()
     
        ReDim tableau(6, 2) ' equivalent à tableau1 mais redimensionnable dynamiquement
    End Sub
     
     
     
    Sub exemple2()
        ' Tableaux imbriqués
        Dim incTableau() As String 
     
        ReDim tableau2(6)
        For x = 0 To 6
            ReDim incTableau(x)
            incTableau(x)=x
            tableau2(x) = incTableau
        Next
     
        Debug.Print tableau2(1)(1)
    End Sub
    C'est ce que je fais,c'est à dire,je déclare un tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public tableau() As String
    ensuite dans ma fonction private sub calcul_click()
    je fais puis qd j'ai besoin de redimmensionner, j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ReDim preserve tableau(6, 2)
    mais si j'appelle par exemple private sub assigneval() dans private sub calcul_click() , alors là je perds les données de "tableau "dans assigneval.
    D'où ma demande:déclarer un tableau dynamique en global pour pouvoir conserver les données qui y sont entrées

  5. #5
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Citation Envoyé par lecamer Voir le message
    C'est ce que je fais,c'est à dire,je déclare un tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public tableau() As String
    ensuite dans ma fonction private sub calcul_click()
    je fais .../...


    .../...
    mais si j'appelle par exemple private sub assigneval() dans private sub calcul_click() , alors là je perds les données de "tableau "dans assigneval.
    .../...
    Si tu fais un redim c('est normal

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par DarkVader Voir le message
    Si tu fais un redim c('est normal
    c'est ce que j'ai fini par comprendre.
    Mais que faire , là est la question

  7. #7
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Encadre ton redim par une boucle conditionnelle testant le tableau
    (Isempty ou typename ...)

  8. #8
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Ca ne changera rien au fait que lorsque le tableau ne sera pas vide,et que j'appelerai assigneval, je n'aurai plus les données dans le tableau.
    Ou j'ai mal compris...,si c'est le cas peut tu etre plus explicite stp

  9. #9
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Si c'est le redim qui réinitialise le tableau, en pratiquant comme décrit,
    le redim ne sera plus effectué qu'à la première exécution.

    Au cas où je n'aurais pas compris, tu ferais bien d'être plus explicite
    quitte à exposer ton code.

  10. #10
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Ok ,tu n'a pas compris, je me suis donc mal exprimé et je vais essayer d'être plus clair.
    Deja j'utilise redim plusieurs fois ie à chaque fois que je veux ajouter un élément dans le tableau.
    Ensuite,ce n'est pas là que se trouve le problème, mais plutôt dans la fonction que j'appelle ie assigneval ici.Car c'est là que je voulais utiliser les données du tableau mais ils n'y sont plus.
    Je vais modifier la signature de la fonction assigneval,en passant le tableau en paramètre et en Byrefc ie assigneval (byref tableau () as string),et j'espère que ca marchera.
    Je ne voulais pas en arriver là car c'est une fonction utilisée bcp de fois dans le logiciel.
    J'espère que je me suis mieux exprimé

  11. #11
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    J'ai fais le passage en paramètre du tableau avec byref et cette solution marche,s'il n'y a pas une meilleure solution,je conserverai celle la.
    Merci pour les posts et les propositions de solution

Discussions similaires

  1. Tableaux d'objets dynamiques a deux dimensions
    Par Archimyste dans le forum Débuter
    Réponses: 2
    Dernier message: 14/01/2013, 15h22
  2. Réponses: 0
    Dernier message: 06/08/2010, 11h59
  3. Tableau à une ou deux dimensions:
    Par ghyosmik dans le forum Débuter
    Réponses: 2
    Dernier message: 10/01/2009, 14h47
  4. decalaration dynamique tableaux deux dimensions et TRI
    Par Alex35 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/12/2007, 14h48
  5. Réponses: 4
    Dernier message: 13/05/2002, 17h43

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