#1 Thu 31 May 2001 22:24
- Vvestri
- Invité
subscript hors limit
Grenoble, le 31 mai 2001
Bonjour,
Encore un casse-tete chinois dans MapBasic...
Je travaille habituellement avec une fonction qui me permet, a tout moment, de connaitre les champs d'une table ouverte. Cette derniere fonctionne tres bien (il s'agit de la premiere ci-dessous) cependant j'ai besoin maintenant d'une fonction qui me permette de travailler sur un nombre de champs plus important. Et voila malheureusement que cela ne veut pas fonctionner. Je souhaite passer de 10 a 50 champs max (cf seconde fonction ci dessous) et dans la premiere boucle du FOR... NEXT a partir de i=12 j'ai un message d'erreur subscript hors limit .
Il y a vraiment quelque chose qui m'echappe mais quoi ?
Si quelqu'un a une idee elle sera la bien venue car je suis coincee pour la suite du deroulement de mon module.
Merci d'avance
Veronique VESTRI
*****************
Declare Function ListeCHAMPtable (byval TABLE as string,TabCHAMP(10) as string)as logical
'*****************
' Listing des champs d'une table
'*****************
Function ListeCHAMPtable (byval TABLE as string, TabCHAMP(10) as string) as logical
Dim i as integer
ListeCHAMPtable = False
For i = 1 to 10
TabCHAMP(i) =
Next
For i=1 to tableInfo(TABLE,TAB_INFO_NCOLS)
TabCHAMP(i) = ColumnInfo(TABLE, Col +str(i),COL_INFO_NAME)
Next
ListeCHAMPtable = True
End Function
'***************
Declare Function ListeCHAMPtablePLUS (byval TABLE as string,TabCHAMPplus(50) as string) as logical
'***************
' Listing des champs d'une table (sup. a 10 champs)
'***************
Function ListeCHAMPtablePLUS (byval TABLE as string, TabCHAMPplus(50) as string) as logical
Dim i as integer
ListeCHAMPtablePLUS = False
For i = 1 to 50
TabCHAMPplus(i) =
Next
For i=1 to tableInfo(TABLE,TAB_INFO_NCOLS)
TabCHAMPplus(i) = ColumnInfo(TABLE, Col +str(i),COL_INFO_NAME)
Next
ListeCHAMPtablePLUS = True
End Function
#2 Thu 31 May 2001 22:26
- Carlos Montalvillo
- Invité
Re: subscript hors limit
Veronique,
Le message subscript hors limit fait reference a une indexation d'une table avec une valeur plus grande que le vecteur.
Par exemple, votre vecteur est defini :
Dim V(12) as String
Et vous etes en train d'utiliser :
V(13) = QQC
Et bien, MapInfo n'aime pas trop Ça ...
Definisez bien la taille de la table et surveillez les valeurs de l'index a l'utilisation. Une autre idee, redefinir la taille du vecteur à l'aide de ReDim.
Carlos