Retun tableau d'une fonction

Résolu
rfleury_sg Messages postés 5 Date d'inscription vendredi 11 août 2006 Statut Membre Dernière intervention 9 septembre 2006 - 9 sept. 2006 à 08:46
rfleury_sg Messages postés 5 Date d'inscription vendredi 11 août 2006 Statut Membre Dernière intervention 9 septembre 2006 - 9 sept. 2006 à 10:02
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

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
9 sept. 2006 à 09:12
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++
3
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
9 sept. 2006 à 09:51
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
3
rfleury_sg Messages postés 5 Date d'inscription vendredi 11 août 2006 Statut Membre Dernière intervention 9 septembre 2006
9 sept. 2006 à 09:32
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 ?
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 sept. 2006 à 09:47
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 #
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rfleury_sg Messages postés 5 Date d'inscription vendredi 11 août 2006 Statut Membre Dernière intervention 9 septembre 2006
9 sept. 2006 à 10:02
Magnifique ! Cela marche..merci à vous deux !


Et j'ai compris mon erreur !
0
Rejoignez-nous