Tableau d'objets

Résolu
Lord_Patoche Messages postés 196 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 1 mai 2009 - 6 mai 2006 à 15:10
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 - 6 mai 2006 à 15:39
Salut a tous et toutes. Je créé un programme dans lequel un listbox apparait lors de l'appuie sur un bouton. le click de ce bouton après avoir fait apparaitre la liste entraine un vidage de cette dernière via une fonction placée dans un module de nom module1. Ensuite, une autre fonction est lancée permettant la lecture d'un fichier texte dont je souhaite placer chaque ligne dans des variables d'un objet.
Je déclare mon tableau d'objet en en-tête de mon module mais lorsque je lance mon programme et que j'appuie sur le bouton ma liste apparait, elle se vide bien, mais lors de la lecture du fichier et du remplissage rien ne se produit et j'obtiens l'erreur : l'exception NullReferenceException n'a pas été gérée. La référence d'objet n'est pas définie à une instance d'un objet.
Il semblerait de ma déclaration de tableau soit erronée, mais je n'ai pas trouvé dans l'aide de syntaxe particulière à la déclaration des tableaux d'objets.

La déclaration de mon tableau d'objet est la suivante :

Public IdentiteUtilisateur(100)
As Utilisateur

Ps : J'ai vérifié le nombre d'éléments à lire dans le fichier, il est inférieur au nombre d'éléments que peut contenir le tableau, c'est à dire inférieur à 100.

Merci d'avance pour votre aide

LaPatoshe

5 réponses

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
6 mai 2006 à 15:30
Déclaré le tableau ne suffit pas ! Encore faut-il instancié les objets qu'il doit contenir au moment de s'en servir, comme pour une variable objet simple (pas un tableau je veux dire)

En admettant que tu remplisses ton tableau dans une boucle for cela donnerai un truc du genre

For i = 0 to 99
Set IdentiteUtilisateur(i) = New Utilisateur ' C'est cette ligne qu'il doit te manquer
With IdentiteUtilisateur(i)
.Nom = un truc quelconque issu du fichier
.Prenom = un autre truc quelconque issu du fichier
End With
Next
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
6 mai 2006 à 15:18
Salut,


tu as mis
"Public IdentiteUtilisateur(100) As
Utilisateur"
mais je suppose que tes identités utilisateurs sont des noms et prénoms, bref du texte.
Je pense qu'en mettant
Public IdentiteUtilisateur(100) As String
ce sera pris en compte.

En cas tiens nous au courant

@ ++

Mortalino
0
Lord_Patoche Messages postés 196 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 1 mai 2009 3
6 mai 2006 à 15:34
En fait Utilisateur est une classe contenant plusieurs variables texte (nom as string, prénom as string, age as string ...)
Si je déclare IdentiteUtilisateur en String, je ne pourrai pas affecter les lignes du fichier texte à leur place respective dans IdentiteUtilisateur
Exemple:
Disons que mon fichier texte contient 2 personnes, il s'établit comme suit
2
DUCHEMIN
Gérard
30
JOHNSON
Annick
40

'2' représente le nombre d'enregistrements dans mon fichier soit 2 personnes. On le lit et on effectue une boucle de lecture allant de 1 à 2 ou de 0 à (2-1).
Je souhaite que mon prog lise ce fichier ensuite de la façon suivante :
_ Mise en place d'une boucle allant de 1 à 2
_ Lecture du fichier et affectation de DUCHEMIN dans IdentiteUtilisateur(1).Nom
_ Lecture du fichier et affectation de Gérard dans IdentiteUtilisateur(1).Prénom
_ Lecture du fichier et affectation de 30 dans IdentiteUtilisateur(1).Age
_ Lecture du fichier et affectation de JOHNSON dans IdentiteUtilisateur(2).Nom
_ Lecture du fichier et affectation de Annick dans IdentiteUtilisateur(2).Prénom
_ Lecture du fichier et affectation de 40 dans IdentiteUtilisateur(2).Age

ainsi dans ma boucle for i = 1 to 2
j'aurai pour chacune des lignes lue un code du type :
IdentiteUtilisateur ( i ).Nom = Fichier.ReadLine()

IdentiteUtilisateur ( i ).Prenom = Fichier.ReadLine()

NB : Fichier est de type System.IO.StreamReader

LaPatoshe
0
Lord_Patoche Messages postés 196 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 1 mai 2009 3
6 mai 2006 à 15:37
Merci beaucoup. Il s'agissait bien de la ligne manquante. A+

LaPatoshe
0

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

Posez votre question
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
6 mai 2006 à 15:39
De rien !
0
Rejoignez-nous