diiplayer
Messages postés64Date d'inscriptionmardi 28 septembre 2004StatutMembreDernière intervention24 octobre 2007
-
19 mai 2006 à 04:41
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
19 mai 2006 à 14:52
Salut, je tente actuellement de créé un petit OCX qui va aller lire des données dans un fichier Text et me les séparés dans un Tableau. Cependant, j'obtien un message d'erreur "Subscript out of range" et je sais pas comment sa.
Voici l'endoit ou l'erreur ce fait :
Do While Not EOF(bytFile)
Row = Row + 1
Line Input #bytFile, strTempData If Col_Init 0 Then Col_Init Round(Len(strTempData) / Col_width, 0)
-> ReDim Preserve strData(Row, Col_Init)
Dim i As Integer
For i = 1 To Round(Len(strTempData) / Col_width, 0)
strData(Row, i) = Mid(strTempData, i * Col_width, Col_width)
Next i
DoEvents
Loop
l'erreur se produit quand Row = 2, et je ne comprends pas pourquoi :'( si quelqu'un pouvais m'éclairé
cs_deuspi
Messages postés10Date d'inscriptionvendredi 26 septembre 2003StatutMembreDernière intervention15 juin 2006 19 mai 2006 à 11:36
ReDim Preserve strData(Row, Col_Init)
C'est là ton erreur, tu essayes de redimensionner un tableau multidimensionnel, en faisant varier la 1ère dimension. En VB dans un tableau multidimensionnel, seul la dernière dimension peut être redimensionnée par un Redim Preserve.
En effet, si tu regardes dans l'aide du mot-clef "ReDim" tu trouveras cette phrase :
"Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner que
la dernière dimension du tableau."
D'après moi tu pourrais résoudre rapidement ton problème en inversant les dimensions du tableau. Mais j'aime pas trop les tableaux multidimensionnels en VB, personnellement je te conseille plutôt d'utiliser des tableaux de types (tu crées un type personnalisé et tu fais un tableau monodimensionnel de ce type)