Lord_Patoche
Messages postés196Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 1 mai 2009
-
6 mai 2006 à 15:10
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDerniè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.
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 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
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 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.
Lord_Patoche
Messages postés196Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 1 mai 20093 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()