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

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 ...sad

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 smile
Celà fonctionne chez moi .
J'ai fait l'essai avec un .wor et avec un .mbx wink comme ceci:

Code:

open table "données\nom_fichier.tab" as nom1 interactive
Map from nom1

Tu ne nous dis pas tout smile
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 sad

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 smile.
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

 

Pied de page des forums

Powered by FluxBB