Accès données depuis une Class [Résolu]

Messages postés
46
Date d'inscription
mercredi 26 février 2003
Statut
Membre
Dernière intervention
10 juin 2007
- - Dernière réponse : NHenry
Messages postés
14509
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 juillet 2019
- 11 mai 2007 à 11:45
Bonjour,

j'ai une class qui me crée un tableau avec à l'intérieur une structure définit dans ma class.
Le tableau est en public Shared donc je peux y avoir accès depuis l'intérieur de la class.
Quand je fais:
Msgbox(maclass.montableau.count)
Il me retourne bien le nombre d'éléments excacte
et quand je veux accèder aux données y a pas moyen.

Voilà la class, elle va lire un fichier xml pour y extraire les infos dans un tableau.

Imports System.IO

Public Class Class_info
    ' On définit le chemin et le nom du fichier
    Private Shared XMLFile_info As String = "info.xml"

    ' Définition de la structure des renseignements
    Public Structure info_struct
        Dim name As String
        Dim address As String
        Dim statut As Integer
        Dim ip As String
        Dim time As Integer
    End Structure

    ' Définition du tableau qui contient les infos
    Public Shared info_tmp As info_struct
    Public Shared info As New ArrayList

    'Public Shared Sub load_config(ByVal XMLFile_config As String, ByVal final_config As config)
    Public Shared Sub load_info()
        ' on crée l'objet XMLFile
        Dim xFile As New XMLFile()

        ' On teste si le fichier de configuration existe à la racine de l'application
        If File.Exists(Application.StartupPath & "" & XMLFile_info) Then
            ' Ouverture du fichier XML
            xFile.OpenFile(Application.StartupPath & "" & XMLFile_info)

            ' Initialisation de la valeur Drapeau I
            Dim i As Integer
            ' Commence de la boucle pour extraire les informations du fichier XML
            For i = 0 To xFile.GetCountElements("servers", "server") - 1
                info_tmp.name = xFile.GetElementValue("servers/server", "name", i)
                info_tmp.address = xFile.GetElementValue("servers/server", "address", i))
                info.Add(info_tmp)
            Next i

        End If
        ' on ferme le fichier pour ne perdre de resource
        xFile.CloseFile()

    End Sub
End Class

En gros y faut que je sache consulter mon tableau depuis l'extétieur de ma class. Mais je bloque sur un problème.

Voilà encore merci pour vos réponses
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
14509
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 juillet 2019
131
3
Merci
Bonjour

D'abord quelques questions :
Pourquoi public shared sur le ArrayList ?
Pourquoi """"""" """""""" sur Info_Tmp ?
Pourquoi avoir déclarer info_tmp en attribut et pas en local ?
Quel code tu utilises pour accéder à ton tableau ?

En avance :
Tu peux déclarer ton tableau en private shared puis utiliser une propriété pour y accéder (interfaces IList et IEnumerable).
Ton info_tmp en local dans load_info et ça ira peu-être mieux.

Il est plus facile de batiser quelqu'un que de le convertir.(surtout en programmation)
VB (6, .NET1&2), C++, C#.Net1
Mon site

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 126 internautes nous ont dit merci ce mois-ci

Commenter la réponse de NHenry
Messages postés
500
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
2 juillet 2012
0
Merci
bonjour,
je vais peut-être dire une bétise mais en VB6 ou en VBA les variables string dans une structure doivent être dimentionnées.
A+
louis
Commenter la réponse de cs_lermite222
Messages postés
14509
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 juillet 2019
131
0
Merci
Bonjour

En VB6 ou VBA ce n'est pas obligatoire (d'après mes souvenirs), mais cela était du temps du QBasic.

Il est plus facile de batiser quelqu'un que de le convertir.(surtout en programmation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
Commenter la réponse de NHenry