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

WinDev Discussion :

Renvoi de tableau de variants ou de tableau associatif [WD23]


Sujet :

WinDev

  1. #1
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut Renvoi de tableau de variants ou de tableau associatif
    Bonjour,

    quelqu'un peu me dire pourquoi ce code ne fonctionne pas :

    Soit un simple bouton "test" qui passe en paramètre un tableau a une procédure qui doit le modifier avant de le renvoyer

    Le tableau en retour est toujours vide ...

    Une idée ?




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    tabAbo est un tableau  de 2 Variants
     
    tabAbo[1] = "test"
    tabAbo[2] = 20
     
    tabAbo = PROC_Test(tabAbo)
     
    Trace(tabAbo[1] )        // ne renvoie rien 
    Trace(tabAbo[2] ) 	// ne renvoie rien

    La PRC_Test() est ici ;:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    PROCÉDURE PROC_Test(vTab) 
     
    Trace(vTab[1] ) // renvoie "test"
    Trace(vTab[2] ) // renvoie 20
     
    vTab[1] = "modifie"
    vTab[2] = 30
     
    Trace(vTab[1] ) // renvoie "modifie"
    Trace(vTab[2] ) // renvoie 30
     
     
    RENVOYER vTab

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    As-tu essayé &tabAbo = PROC_Test(tabAbo) et RENVOYER &vTab ?
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    Merci pour ton aide , mais ça ne passe pas ...

    Si je mets un & devant la variable tabo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    &tabAbo = PROC_Test(tabAbo)
    J'ai une erreur "Erreur :Erreur de syntaxe sur le mot &."


    Par contre le & est accepté dans la procédure ...

    J'ai de la peine a comprendre la logique

  4. #4
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 328
    Points : 3 841
    Points
    3 841
    Par défaut
    Salut wd_newbie,

    Il y a 2 façons de faire pour ça :

    Soit tu passes l'adresse de ton tableau, comme tu le fais actuellement et alors tu n'as pas besoin de renvoyer la modification, ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    tabAbo est un tableau  de 2 Variants
     
    tabAbo[1] = "test"
    tabAbo[2] = 20
     
    PROC_Test(tabAbo)
     
    Trace(tabAbo[1] )        // renvoie "modifie" 
    Trace(tabAbo[2] ) 	// renvoie "30"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    PROCÉDURE PROC_Test(vTab) 
     
    Trace(vTab[1] ) // renvoie "test"
    Trace(vTab[2] ) // renvoie 20
     
    vTab[1] = "modifie"
    vTab[2] = 30
     
    Trace(vTab[1] ) // renvoie "modifie"
    Trace(vTab[2] ) // renvoie 30
    Soit tu passes ton tableau, mais dans ce cas, il faut passer le paramètre en LOCAL dans la procédure et la récupération du tableau se fait avec <= et non =.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    tabAbo est un tableau  de 2 Variants
     
    tabAbo[1] = "test"
    tabAbo[2] = 20
     
    tabAbo <= PROC_Test(tabAbo)
     
    Trace(tabAbo[1] )        // renvoie "modifie" 
    Trace(tabAbo[2] ) 	// renvoie "30"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    PROCÉDURE PROC_Test(LOCAL vTab) 
     
    Trace(vTab[1] ) // renvoie "test"
    Trace(vTab[2] ) // renvoie 20
     
    vTab[1] = "modifie"
    vTab[2] = 30
     
    Trace(vTab[1] ) // renvoie "modifie"
    Trace(vTab[2] ) // renvoie 30
     
    RENVOYER vTab

  5. #5
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    Merci pour les infos

    Je n'avais jamais trop bossé avec les tableau dans les paramètres de fonction et visiblement je suis passé à côté-

    ça va grandement me facilité la vie , merci de ton aide !

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

Discussions similaires

  1. fonction qui renvoie un tableau
    Par GLSpirit dans le forum C++
    Réponses: 9
    Dernier message: 12/05/2007, 14h05
  2. fonction qui renvoie un tableau
    Par toto2022 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 22/01/2007, 16h11
  3. Réponses: 3
    Dernier message: 13/07/2006, 17h56
  4. Comment faire une fonction qui renvoi un tableau.
    Par poly128 dans le forum Delphi
    Réponses: 2
    Dernier message: 01/06/2006, 01h04
  5. Fonction qui renvoie un tableau?
    Par elm dans le forum C
    Réponses: 23
    Dernier message: 21/12/2005, 12h44

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