Utiliser un tableau à 2 dimensions avec une structure [Résolu]

cs_rafanel 21 Messages postés lundi 17 mars 2003Date d'inscription 8 mars 2012 Dernière intervention - 8 mars 2012 à 09:47 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention
- 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
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 8 mars 2012 à 10:15
3
Merci
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

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 83 internautes ce mois-ci

Commenter la réponse de ucfoutu
Meilleure réponse
cs_rafanel 21 Messages postés lundi 17 mars 2003Date d'inscription 8 mars 2012 Dernière intervention - 8 mars 2012 à 10:44
3
Merci
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

Merci cs_rafanel 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 83 internautes ce mois-ci

Commenter la réponse de cs_rafanel
Meilleure réponse
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 8 mars 2012 à 10:50
3
Merci
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

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 83 internautes ce mois-ci

Commenter la réponse de ucfoutu
cs_rafanel 21 Messages postés lundi 17 mars 2003Date d'inscription 8 mars 2012 Dernière intervention - 8 mars 2012 à 11:55
0
Merci
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
Commenter la réponse de cs_rafanel
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 8 mars 2012 à 12:22
0
Merci
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 ?
Commenter la réponse de cs_ShayW
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 8 mars 2012 à 12:46
0
Merci
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
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.