Utiliser un tableau à 2 dimensions avec une structure

Résolu
cs_rafanel Messages postés 21 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 8 mars 2012 - 8 mars 2012 à 09:47
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 8 mars 2012 à 12:46
c'est mon premier dev en vb.net en vb6 j'utilise les strutures TYPE et tout fonctionne correctement.
je n'arrive pas à remplir le tableau dans ma structure

'voici ma partie déclaration
' Structure d'un carton
Public Structure Carton
Dim Numero(,) As Short
Dim Sortie(,) As Boolean

Public Sub Initialize()
ReDim Numero(9, 2)
ReDim Sortie(8, 2)
End Sub
End Structure
Public TabCarton() As Carton

'Dans mon code du load de la form
' Lecture du nombre de carton
NbCarton = CInt(Get_Private_Profile_String("Cartons", "nb", "", FichierIni))

' Init Variables
TabCarton = New Carton(NbCarton) {}
TabCarton.Initialize()

' je remplis ma structure
For i = 0 To 8
'Ligne 1
If TxtLigne1(i).Text <> "" Then
Le problème est ici quand j'écris
TabCarton(Carton).Numero(i, 0) = CInt(TxtLigne1(i).Text)
TabCarton(Carton).Sortie(i, 0) = False
....

Qu'est ce que j'ai oublier ou mal fait ???
merci par avance d'une aide
TR
A voir également:

6 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
8 mars 2012 à 10:15
Bonjour,
Tabcarton est déjà une structure en soi, puisque définie as carton !
=>>
Tabcarton.numero(1,0) pointe donc vers l'élément 1,0 du tableau numero, lui-même membre de tabcarton

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
cs_rafanel Messages postés 21 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 8 mars 2012
8 mars 2012 à 10:44
ok erreur de ma part
j'ai changer mon code en renomment ma variable local au sub de carton en MyCarton

Mais même pb voici le nouveau code

For i = 0 To 8
'Ligne 1
If TxtLigne1(i).Text <> "" Then
TabCarton(MyCarton).Numero(i, 0) = CInt(TxtLigne1(i).Text)
Erreur L'exception NullRerenceException n'a pas été gérée pour la ligne ci-dessus
je me demande si Numero est bien déclarer comme tableau car en passant la sourie en mode débug j'ai TabCarton(1).Numero Nothing
....

aurais-tu un exemple de code pour que je m'adapte ?
TR
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
8 mars 2012 à 10:50
TabCarton(MyCarton).Numero(i, 0) = CInt(TxtLigne1(i).Text)

tu persistes et signes !
Relis-moi !
Tabcarton est une structure. l'un de ses membres est numero (et c'est un tableau) ===>>
TabCarton.Numero(i, 0) = ....


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
cs_rafanel Messages postés 21 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 8 mars 2012
8 mars 2012 à 11:55
j'ai trouvé, mais il existe peut être mieux vous de me le dir...
Puisque je veux avoir un tableau avec comme définition une structure qui contient des tableaux.
il faut relancer TabCarton(NbCarton).Initialize() à chaque fois qu'on ajoute un nouvel indice au tableau TabCarton
voici mon code corrigé
'voici ma partie déclaration
' Structure d'un carton
Public Structure Carton
Dim Numero(,) As Short
Dim Sortie(,) As Boolean

Public Sub Initialize()
ReDim Numero(9, 2)
ReDim Sortie(8, 2)
End Sub
End Structure
Public TabCarton() As Carton

'Dans mon code du load de la form
' Init Variables
NbCarton = +1
ReDim TabCarton(NbCarton)
TabCarton(NbCarton).Initialize()

'je remplis ma structure
For i = 0 To 8
'Ligne 1
If TxtLigne1(i).Text <> "" Then
Le problème est ici quand j'écris
TabCarton(MyCarton).Numero(i, 0) = CInt(TxtLigne1(i).Text)
TabCarton(MyCarton).Sortie(i, 0) = False
....

TR
0

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

Posez votre question
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
8 mars 2012 à 12:22
Salut
drole de structure avec une Public Sub Initialize()

TabCarton = New Carton(NbCarton)

ici une tu a déja une erreur
carton has no constructors

pourquoi faire une sub pour redimensionner numero
et sortie dans ta structure ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
8 mars 2012 à 12:46
Pour moi, la chose est simple :
c'est tout simplement
Public TabCarton As Carton
puis ce que j'en ai déjà dit plus haut


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Rejoignez-nous