banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

 

Pied de page des forums

Powered by FluxBB