#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
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