#1 Sun 06 July 2014 17:28
- didou72
- Participant assidu
- Date d'inscription: 21 Mar 2012
- Messages: 192
Mapbasic : Appeler un fichier sans boite de dialogue
Bonjour à tous,
Quand je programme en Mapbasic, J'utilise souvent une boite de dialogue qui demande à l'utilisateur d'ouvrir un fichier pour ensuite effectuer le traitement.
Mais là je souhaite ne plus demander à l'utilisateur car il s'agit d'un fichier qui ne bougera jamais (pour rendre encore plus facile le traitement). donc si j'utilise un chemin relatif alors le programme l'utilise directement pour effectuer les traitements. Le fichier sera dans le même dossier du programme (MBX) puis dans un sous dossier ( données)
J'ai essayé juste avec un chemin relatif du style -> données/ nom_fichier.tab as nom1
Mais il ouvre une fenêtre là ou se trouve le fichier
Pouvez-vous m'aider svp?
A+
Hors ligne
#2 Mon 07 July 2014 13:17
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Mapbasic : Appeler un fichier sans boite de dialogue
Salut,
as tu essayé comme ceci:
open table "données\nom_fichier.tab" as nom1 interactive
A+
Joël
Hors ligne
#3 Mon 07 July 2014 13:48
- didou72
- Participant assidu
- Date d'inscription: 21 Mar 2012
- Messages: 192
Re: Mapbasic : Appeler un fichier sans boite de dialogue
Bonjour,
Rien ne change, Mapinfo demande toujours le fichier ...
Hors ligne
#4 Mon 07 July 2014 14:18
- Rim71069
- Juste Inscrit !
- Lieu: Macon
- Date d'inscription: 31 Mar 2011
- Messages: 7
Re: Mapbasic : Appeler un fichier sans boite de dialogue
Salut,
Si le fichier "données" se trouve en amont du .mbx, il faut peut-être taper le lien comme ceci :
..\données\nom_fichier.tab
Avec autant de "..\" qu'il faut revenir en arrière...
Hors ligne
#5 Mon 07 July 2014 15:25
- didou72
- Participant assidu
- Date d'inscription: 21 Mar 2012
- Messages: 192
Re: Mapbasic : Appeler un fichier sans boite de dialogue
Alors concernant l'organisation du programme:
Dossier1->Fichier MBX+ Dossier "Données"-> fichier.tab
Non Rim71069 il ouvre juste le dossier donnée et me demande de choisir le fichier ....
Hors ligne
#6 Mon 07 July 2014 19:17
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Mapbasic : Appeler un fichier sans boite de dialogue
Bizarre
Celà fonctionne chez moi .
J'ai fait l'essai avec un .wor et avec un .mbx comme ceci:
Code:
open table "données\nom_fichier.tab" as nom1 interactive Map from nom1
Tu ne nous dis pas tout
Peut t'on voir un bout de ton code si ce n'est pas confidentiel
A+
Joël
Hors ligne
#7 Mon 07 July 2014 19:36
- didou72
- Participant assidu
- Date d'inscription: 21 Mar 2012
- Messages: 192
Re: Mapbasic : Appeler un fichier sans boite de dialogue
Ah mince
Demain je vais mettre un bout de code ^^ c'est vraiment bizarre ..
Merci pour l'aide
Hors ligne
#8 Thu 10 July 2014 14:05
- didou72
- Participant assidu
- Date d'inscription: 21 Mar 2012
- Messages: 192
Re: Mapbasic : Appeler un fichier sans boite de dialogue
Bonjour,
Ci-dessous le code
j'ai essayé avec la table routes france mais elle est pas ouverte automatiquement
Mon mbx est dans un dossier puis aprés j'ai un sous dossier "données".
Code:
Include "MAPBASIC.DEF" Include "MENU.DEF" Declare Sub Main Declare Sub intersection Global s_fichier01, s_fichier02, s_fichier03, s_chemin As String '-------------------------Creation de table et ouverture des fichiers ---------------------- Sub Main Print chr$(12) s_chemin = ApplicationDirectory$( ) s_fichier01 = FileOpenDlg (s_chemin , ".tab","TAB", "Ouvrir fichier ligne électrique france ...") If s_fichier01 <> " " Then Open Table s_fichier01 As RTE End If s_fichier03 = FileOpenDlg (s_chemin , ".tab","TAB", "Ouvrir fichier zp...") If s_fichier03 <> " " Then Open Table s_fichier03 As zp End If open table "Données\Routes_france.TAB" as routes interactive '-------------------------Parametrage des unités------------------------------------------------------------------------ Set CoordSys Earth Projection 3, 33, "m", 3, 46.5, 44, 49, 700000, 6600000 Set Distance Units "m" Set Area Units "sq m"
Dernière modification par didou72 (Thu 10 July 2014 14:06)
Hors ligne
#9 Thu 10 July 2014 19:54
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Mapbasic : Appeler un fichier sans boite de dialogue
j'ai essayé avec la table routes france mais elle est pas ouverte automatiquement
As tu regardé dans Table -> Liste des tables?
Est t'elle ouverte?
Si tu veux afficher ta carte:
Map from routes
Si tu veux afficher la table attributaire:
Browse * from routes
A+
Joël
Dernière modification par Spacejo (Thu 10 July 2014 20:09)
Hors ligne
#10 Thu 10 July 2014 20:15
- didou72
- Participant assidu
- Date d'inscription: 21 Mar 2012
- Messages: 192
Re: Mapbasic : Appeler un fichier sans boite de dialogue
ben en gros il m'ouvre la boite de dialogue pour que je lui sélectionne le fichier
Mais du coup les fichiers sont sur le serveur donc j'indique le chemin complet !!
En revanche, je rencontre un autre problème car mon programme produit des tables qui s'affichent sur une carte pour une utilisation temporaire.
Le problème est que je ne souhaite pas que la personne qui visualise le résultat enregistre le workspace et je souhaite surtout que ces tables se suppriment automatiquement soit à la fermeture de Mapinfo ou soit ( si impossible de ne pas griser la fonction enregistrement) juste avant l'enregistrement après la visualisation de l'utilisateur.
Les tables sont produites par la commande "create table"
Pouvez-vous me dire les commandes car je suis un peu perdu ..
Hors ligne
#11 Thu 10 July 2014 20:28
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Mapbasic : Appeler un fichier sans boite de dialogue
Pour la commande de suppression -->
Rollback Table taTable
Pour ton autre soucis -> pourquoi ne pas produire tes tables en "read only" et non en "interactive".
A+
Joël
Hors ligne
#12 Thu 10 July 2014 20:40
- didou72
- Participant assidu
- Date d'inscription: 21 Mar 2012
- Messages: 192
Re: Mapbasic : Appeler un fichier sans boite de dialogue
C'est possible de produire une table en read only et aussi de produire des polygones ou complèter la table attributaire ?
Le rollback supprime à la fin du programme mais je suis pas sur qu'il soit utile dans mon sens ...
La personne démarre le programme -> les tables sont produites -> le programme est terminé -> il visualise le résultat-> il ferme Mapinfo ou essaye d'enregistrer le wor. c'est à ce moment là où je souhaite une suppression des tables donc pour moi le programme est inactif.
Le but est de produire temporairement des zones pour aider la personne à placer des points.
merci pour ton aide
A +
Dernière modification par didou72 (Thu 10 July 2014 20:42)
Hors ligne
#13 Thu 10 July 2014 20:47
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Mapbasic : Appeler un fichier sans boite de dialogue
Il te faut te renseigner sur le terme "handler". --> page 31 (System Event Handlers) de la bible MapBasicReferenceGuide.
--> http://www.google.fr/url?sa=t&rct=j … bs.1,d.bGE
En gros tant que ton .mbx tourne -> il surveille ton utilisateur.
Si il tente d'enregistrer un .wor -> effacement des tables que tu ne souhaites pas voir enregistrer.
Pour le "rollback" -> tu le places où tu veux
A+
Joël
Hors ligne
#14 Fri 11 July 2014 10:42
- didou72
- Participant assidu
- Date d'inscription: 21 Mar 2012
- Messages: 192
Re: Mapbasic : Appeler un fichier sans boite de dialogue
Bonjour,
Apparemment avec Endhandler c'est possible de faire une action si mapinfo se termine.
Le truc est que j'ai des noms de tables qui changent de nom en fonction des boucles et des variables .
il faut enregistrer le nom de chaque table dans une variable qui change aussi en fonction des boucles ...
Dernière modification par didou72 (Fri 11 July 2014 12:05)
Hors ligne
#15 Fri 11 July 2014 12:39
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Mapbasic : Appeler un fichier sans boite de dialogue
Ceci peut t'être utile:
Aprés ouverture d'une table tu peux la paramétrée ainsi:
Set Table tablename
[ FastEdit { On | Off } ]
[ Undo { On | Off } ]
[ ReadOnly ]
[ Seamless { On | Off } [ Preserve ] ]
[ UserMap { On | Off } ]
[ UserBrowse { On | Off } ]
[ UserClose { On | Off } ]
[ UserEdit { On | Off } ]
[ UserRemoveMap { On | Off }} ]
[ UserDisplayMap { On | Off } ]
A+
Joël
Dernière modification par Spacejo (Fri 11 July 2014 12:40)
Hors ligne