Manipulation de tableaux à double dimensions en VB6
stenshinn
Messages postés2Date d'inscriptionmercredi 6 juillet 2005StatutMembreDernière intervention20 juillet 2005
-
20 juil. 2005 à 10:44
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
20 juil. 2005 à 11:55
Bonjour,
mon pb concerne la manipulation des tableaux à double dimension en VB6,
ou plutôt je n'arrive pas à retourner à l'aide d'une fonction un
tableau à 2 dimensions.
Je ne sais pas comment faire car j'en ai besoin afin de simplifier mon code.
Voici un petit bout de code qui ne marche pas et je ne comprends pas why, qqun peut-il m'aider?
Sinon est possible de définir une classe dont les objets sont des matrices?
Merci d'avance, ;-)
J'espère que qqun va pouvoir m'aider car là je suis bien bloquée, dslée mais je ne connais pas très bien VB.
Function RemplirMatriceParametres(ByRef Param() As String)
'Function RemplirMatriceParametres(ByRef Param() As String, ByRef matrice() As String)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 20 juil. 2005 à 11:55
UneMatrice = RemplirMatriceParametres(mesParam)
tu ne peux pas affecter des valeurs à un tableau de cette manière
2e erreur : Dim mesParam(10) As String , mais tu les remplis d'integer k
les tableaux Vb peuvent contenir jusqu'à 60dimentions.
tes 2 dimentions sont loin d'en venir à bout, mais dès qu'il y a plus d'une dimention, tu ne peux pas, par exemple, supprimer "un ligne" en concervant les autres données.
pour cette raison essentiellement, il est préférable de déclarer un type particulier, avec toutes tes colonnes et leur type, armature de ton tableau :
Private Type MesColonnes
NomCol1 As String
NomCol2 As String
End Type
ensuite, ta fonction doit retourner le même type que le tableau
Private Function RemplirMatriceParametres(ByRef Param() As String) As MesColonnes
aussi, Dim i, j, k As Integer n'existe pas. c'est à dire que là, tu déclares i et j en variant, et k en integer
en une ligne, il faut :
dim i as Integer, j as Integer, k as Integer
ce qui donne, au final (sans fonction pour simplifier)
'Général Déclarations
Private Type MesColonnes
NomCol1 As String
NomCol2 As String
End Type
'Form Load
Private Sub Form_Load()
Dim MaMatrice(0 To 10) As MesColonnes
Dim mesParam(5) As String '6valeurs
Dim i As Integer, j As Integer
For i = 0 To 5
mesParam(i) = CStr(i) 'prend l'entier en chaine
Next i
For i = 0 To 1
If (i = 0) Then
For j = 0 To 5
MaMatrice(j).NomCol1 = i
MaMatrice(j).NomCol2 = "para" & j + 1
Debug.Print MaMatrice(j).NomCol2
Next j
Else
For j = 0 To 5
MaMatrice(j).NomCol2 = mesParam(j)
Debug.Print MaMatrice(j).NomCol2
Next j
End If
Next i
End Sub
'utilise Debug.Print pour avoir les résultat dans la fenêtre d'execution
'en bas de VB, plutôt que des msgbox à cliquer ;)
'cette fenêtre ne se vide qu'à la fermeture de ton projet.