Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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 Wed 09 April 2003 13:38

Maud Marsauche
Invité

Mettre sur un unique fichier des polygones appartenant a des tables differentes

Bonjour,
Je souhaite mettre sur une meme table des polygones appartenant a une centaine d'autres fichiers (occupation du sol communes par communes). Je n'arrive pas a tous les selectionner pour les copier/coller sur la nouvelle table.
Je n'ai pas trouver dans les archives la reponse a ce problemes, mais je crois pourtant que recemment quelqu'un a eu le meme soucis.
Merci d'avance
Cordialement
Maud MARSAUCHE

 

#2 Thu 10 April 2003 08:59

Rictrem
Invité

Re: Mettre sur un unique fichier des polygones appartenant a des tables differentes

Bonsoir,

La tache que vous decrivez est commune a bien du monde. En effet, lorsque l'on gere des donnees volumineuses, il faut les classer en plus petites portions sinon cela depasse vite les capacites materielles de nos machines.

Par contre, lorsque l'on a besoin d'interroger ou d'exploiter l'ensemble de nos donnees, il faut automatiser des traitements. Rassurez-vous, il n'est nullement question ici de faire de la programmation. Voici une maniere de proceder pour creer votre fichier.

Vous aurez a utiliser les logiciels suivants :

ScriptGen.exe, offert en version d'evaluation pour une periode de 14 jours, disponible a l'adresse
http://www.geocities.com/rictrem/ScriptGen.html,

ScruteF.exe, logiciel gratuit disponible a l'adresse
http://www.geocities.com/rictrem/scrutef.html

et evidemment le logiciel mapinfo.

Pour l'exemple je suppose que vos fichiers portent des noms differents, dans des dossiers differents mais que la structure est identique. Si ce n'est pas le cas, il suffira d'adapter le traitement a faire.

Premiere etape

Creation d'une table vide qui servira de depart et a laquelle vous ajouterez successivement le contenu de vos tables. La maniere la plus simple d'executer cette action est de faire une selection en ecrivant rowid=0 comme critere. Vous enregistrez cette selection dans une table que vous nommez par exemple tablevide.tab, la structure de votre table est conservee et elle ne contient aucun objet.

Deuxieme etape

Élaborer un script de base. Avec mapinfo, en utilisant la fenetre mapbasic comme enregistreur de commandes, vous executez les operations necessaires. En supposant que tablevide.tab est deja ouvert, faites les commandes suivantes :

Fichier Ouvrir Table...
Table Ajouter...
Fichier Fermer Table...

Les instructions suivantes s'inscrirons automatiquement dans la fenetre mapbasic :

Open Table C:Temptablequelconque.TAB Interactive
Add Map Auto Layer tablequelconque
Insert Into tablevide ( COL1, COL2, COL3) Select COL1, COL2, COL3 From tablequelconque
Close Table tablequelconque Interactive

Vous faites un copier coller de ces lignes dans le logiciel ScriptGen.exe dans l'onglet Script de base. Vous enlevez les instructions inutiles pour arriver a notre but et vous modifiez le code pour donner un alias a la table. Vous obtenez ce qui suit :

Open Table C:Temptablequelconque.TAB As unalias
Insert Into tablevide ( COL1, COL2, COL3) Select COL1, COL2, COL3 From unalias
Close Table unalias

Votre script de base est complet. Vous remarquerez qu'il est possible de faire un select ou un traitement quelconque dans cette table en vue de constituer une table offrant des caracteristiques differentes que la simple addition d'elements.

Troisieme etape

Il vous faut obtenir la liste de fichiers que vous voulez ouvrir. Pour ce faire, vous utilisez le logiciel ScruteF.exe qui est capable d'extraire d'un support de stockage le nom de fichier complet selon un filtre. Vous obtenez une liste que vous pouvez enregistrer dans un fichier texte. La liste que vous obtiendrez ressemblera a ceci :

C:donneecommunescouchequelconque.tab
C:donneecommunesnomcommunecouchequelconque1.tab
C:donneecommunesnomcommunecouchequelconque2.tab
C:donneecommunesnomcommunesubdivisioncouchequelconque1.tab
C:donneecommunesnomcommunesubdivisioncouchequelconque2.tab

ainsi de suite jusqu'a atteindre des centaines de tables.

Vous placez cette liste dans l'onglet liste de valeurs du logiciel ScriptGen.exe.

Quatrieme etape

Dans ScriptGen, vous avez un script de base et une liste de valeurs. Il reste a inscrire la valeur a remplacer. Dans notre cas, la valeur a remplacer est C:Temptablequelconque.TAB. Avant de generer le script final, il faut placer la ligne qui ouvre la table vide dans l'onglet Script final et cocher l'option Ajouter au script final . Cette ligne est la suivante :

Open Table C:Temptablevide.TAB

À l'execution, le generateur de scripts recopiera le script de base en substituant la valeur a remplacer avec chaque valeur de la liste. Il ne restera plus qu'a ajouter dans le script final les lignes suivantes pour enregistrer votre fichier et tout fermer :

Commit Table tablevide As C:Tempbigtable.TAB TYPE NATIVE Charset WindowsLatin1
Close All

Il suffit alors d'enregistrer le script final soit dans un fichier texte, soit dans un workspace pour utilisation ulterieure.

Cinquieme etape

Cette etape offre une immense satisfaction.

Premiere possibilite, copier toutes les lignes de code du fichier texte dans la fenetre mapbasic, tout selectionner (noircir les lignes) et appuyer sur enter. Convient si votre script ne depasse pas 500 lignes.

Deuxieme possibilite, ouvrir le workspace avec mapinfo.

Voila, votre grand fichier bigtable.tab est cree, a vous de l'exploiter au mieux.

Salutations
Richard Tremblay

 

#3 Wed 23 April 2003 08:59

Guillaume MESTELAN
Invité

Re: Mettre sur un unique fichier des polygones appartenant a des tables differentes

C'est moi qui avait eu le probleme
J'ai utilise combiner-241.mbx que l'on m'avait conseille sur la liste et il
fonctionne tres bien
Je ne sais plus ou je l'avais telecharge
Mais si tu veux je te l'envoie

Guillaume

 

#4 Wed 23 April 2003 11:17

Guillaume MESTELAN
Invité

Re: Mettre sur un unique fichier des polygones appartenant a des tables differentes

Devant la demande je l'envoie pas
Vous pourrez le charger a l'adresse suivante, en bas de page :

http://www.directionsmag.com/tools/Defa … duct_id=49

Il y a un certain nombre de trucs a effectuer avant de l'utiliser : bien
lire la notice ci dessous

Bon courage

Tables into a single output Table. The projection is set from the first
table and any tables projection which does not match will be translated
before calculating the tables bounds which are set to include all data from
all tables. Search Path Option - find all Mapinfo Tables in a specifed path
and combine them into one output Table. File Option - Reads a ascii file
list (.scr assumed) of Mapinfo Tables and combines them into one output
Table. The .scr file can be created with any text editor, make sure to
include the correct path. The dos command DIR may be used to to create the
.scr file. i.e. DIR /S /B *.TAB > list.scr Will produce a file LIST.SCR
which looks like: C:MAPINFODATAFILE1.TAB C:MAPINFODATAFILE2.TAB
C:MAPINFODATAFILE2.TAB C:MAPINFODATAFILE2.TAB Search Parameter - A
string or strings may be entered which a Table name must contain to be
selected for the combine. Several strings may be used seperated by a : i.e.
water:road All Tables with water or road in the name will be combined.

 

Pied de page des forums

Powered by FluxBB