Retun tableau d'une fonction

Résolu
Messages postés
5
Date d'inscription
vendredi 11 août 2006
Statut
Membre
Dernière intervention
9 septembre 2006
-
Messages postés
5
Date d'inscription
vendredi 11 août 2006
Statut
Membre
Dernière intervention
9 septembre 2006
-
Bonjour à tous !

Débutant que je suis, je pêche sur un problème depuis quelques jours, ceci malgré la consultation de forum..

Voilà  mon problème :

J'essaye d'obtenir un tableau depuis un fonction appelée.


Mon but est que le tableau 'a()' prennent les valeurs du tableau 'tableau()' de la fonction ...


Le code qui appele :


I
f typedoc = "etat_user" Then 'appel des bonnes fonctions
                Dim a As String
                etat_user(fic)

                a() = etat_user(fic)
                              

La fonction :


           


Function etat_user(ByVal fic As String)
        Dim XmlDoc As New XmlDocument
        Dim root As XmlNode
        XmlDoc.Load(fic)
        root = XmlDoc.DocumentElement
        'lit de nombre d'utilisateur à imprimer
        Dim nombre As String
        Dim valeur_nombre As String
        valeur_nombre = "nombre"
        nombre = root.Item(valeur_nombre).InnerText

        Dim tailletableau As Integer
        tailletableau = (nombre * 5) - 1

        Dim tableau(tailletableau) As String

        Dim i As Integer
        For i = 0 To nombre - 1
          
            Dim valeur_id(i) As String
            Dim valeur_users(i) As String
            Dim valeur_pass(i) As String
            Dim valeur_niveau(i) As String
            Dim valeur_date_c(i) As String

            valeur_id(i) = "id" & i
            valeur_users(i) = "users" & i
            valeur_pass(i) = "pass" & i
            valeur_niveau(i) = "niveau" & i
            valeur_date_c(i) = "date_c" & i

            Dim ii As Integer
            ii = ((i + 1) * 5) - 5
            tableau(0 + ii) = root.Item(valeur_id(i)).InnerText
            tableau(1 + ii) = root.Item(valeur_users(i)).InnerText
            tableau(2 + ii) = root.Item(valeur_pass(i)).InnerText
            tableau(3 + ii) = root.Item(valeur_niveau(i)).InnerText
            tableau(4 + ii) = root.Item(valeur_date_c(i)).InnerText

        Next i
 
        etat_user = tableau(tailletableau)
    End Function


Pour les puristes, n'oubliez pas que je suis débutant, alors si ce code vous fais mal au yeux  : sorry

Merci d'avance

5 réponses

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Salut,

Le code qui appele : 
                Dim a() As String
                a = etat_user(fic)

La fonction :           
Function etat_user(ByVal fic As String) as string()

Bon courage++
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
C'est normal ta fonction doit retourner un tableau de string et tu lui retourne la valeur qui est tableau(tailletableau) soit un string

Voici la correction
etat_user = tableau
Messages postés
5
Date d'inscription
vendredi 11 août 2006
Statut
Membre
Dernière intervention
9 septembre 2006

Merci beaucoup !



Très logique ta réponse. Mais il grince encore sur le return de la fonction :



etat_user = tableau(tailletableau)




Message du déboggeur :
Erreur 1 Une valeur de type 'String' ne peut pas être convertie en 'Tableau à 1 dimension(s) de String'.




Une idée ?
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Au lieu d'utiliser le retour de ta fonction passe ton tableau comme second parametre.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
5
Date d'inscription
vendredi 11 août 2006
Statut
Membre
Dernière intervention
9 septembre 2006

Magnifique ! Cela marche..merci à vous deux !


Et j'ai compris mon erreur !