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

GEODATA DAYS 2024

#1 Thu 25 September 2008 10:05

kharbeche
Participant occasionnel
Lieu: Eddamous
Date d'inscription: 27 Aug 2008
Messages: 42

[MapBasic 9.0] vérifier l'ouverture de la table

Bonjour;

Dans mon programme MapBasic je veux gérer l'erreur d'une table non ouverte; c'est à dire je veux tester au début du programme si ma table "towns" est déjà ouverte (dans l'environnement MapInfo) ou non sachant que je ne sais pas l'identifiant de ma table et qu'il y a déjà des tables ouvertes dans MapInfo;

Le problème exactement et comment chercher le nom de ma table "towns" dans les noms des tables ouverts dans MapInfo pour vérifier si cette table est ouverte ou non;

J'ai essayé avec TableInfo(id,TAB_INFO_NAME) mais j'ai pas pu parce que je ne sais pas l'identifiant de ma table ensuite je ne sais pas le nombre des tables déjà ouvertes et par suite comment boucler sur ces noms pour trouver le nom de ma table "towns"


merci de votre collaboration

Cordialement; SOFIENE

Hors ligne

 

#2 Thu 25 September 2008 11:07

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: [MapBasic 9.0] vérifier l'ouverture de la table

Salut Kharbeche,

Je ne suis pas un expert en Mapbasic mais pourquoi ne pas faire un test sur la liste des tables ouvertes.
Lorsque l'on fait --->Fichier---->Fermer table ou Table--->Modifier Table etc...
Cette fenêtre doit être connue et donc je pense que l'on peut faire un test sur le contenu (libellé de la table "Towns").
En espèrant que cela te donne une piste de recherche.
A+
Joël

Hors ligne

 

#3 Thu 25 September 2008 12:50

kharbeche
Participant occasionnel
Lieu: Eddamous
Date d'inscription: 27 Aug 2008
Messages: 42

Re: [MapBasic 9.0] vérifier l'ouverture de la table

justement, mais comment récupérer cette liste (la liste des tables ouverts) dans un programme MapBasic !!!

Hors ligne

 

#4 Thu 25 September 2008 13:33

Fabius
Participant actif
Date d'inscription: 19 Mar 2008
Messages: 130

Re: [MapBasic 9.0] vérifier l'ouverture de la table

kharbeche a écrit:

Bonjour;
J'ai essayé avec TableInfo(id,TAB_INFO_NAME) mais j'ai pas pu parce que je ne sais pas l'identifiant de ma table ensuite je ne sais pas le nombre des tables déjà ouvertes et par suite comment boucler sur ces noms pour trouver le nom de ma table "towns"


merci de votre collaboration

Cordialement; SOFIENE


Bonjour.


Personnelement je déclareré une variable test comme une chaine de caractere
et For i= 1 to n(ou n est le nombre de table ouverte)

test= TableInfo(i,TAB_INFO_NAME)

Apres à l'interieur de cette boucle tu rajoute une clause (par un IF) qui specifie que si test= "towns" alors ..... , une autre qui continue si ce n'est pas ca et une fois que la boucle est terminé si towns n'a pas été trouvé alors .......


En epserant t'avoir éclairé


Fab

Hors ligne

 

#5 Thu 25 September 2008 13:46

kharbeche
Participant occasionnel
Lieu: Eddamous
Date d'inscription: 27 Aug 2008
Messages: 42

Re: [MapBasic 9.0] vérifier l'ouverture de la table

je vous remercie de votre réponse; mais le problème réel n'est pas là;

je ne sais pas le nombre "n" c'est à dire le nombre des tables ouverts; c'est un inconnu

comment le récupérer !!!!

Hors ligne

 

#6 Thu 25 September 2008 14:17

Fabius
Participant actif
Date d'inscription: 19 Mar 2008
Messages: 130

Re: [MapBasic 9.0] vérifier l'ouverture de la table

Facile !! L'ai de mapbasic proposeune bonne documentation sur la fonction Numtable()

Un petit exemple qui remplit une liste avec les noms des tables ouvertes :



Code:

nb = NumTables()
    ReDim NomTable(nb)
    For i =1 to nb
       NomTable(i) = TableInfo(i,Tab_Info_Name)
    Next

Hors ligne

 

#7 Mon 29 September 2008 01:17

kharbeche
Participant occasionnel
Lieu: Eddamous
Date d'inscription: 27 Aug 2008
Messages: 42

Re: [MapBasic 9.0] vérifier l'ouverture de la table

C'est parfait de vous Mr. Fabius;

Je vous remercie de votre solution et de votre suivi;

Cordialement; SOFIENE

Hors ligne

 

Pied de page des forums

Powered by FluxBB