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é ?

#1 Tue 02 October 2007 21:30

Marc-André
Participant assidu
Lieu: Montréal
Date d'inscription: 30 Sep 2005
Messages: 688

Modifier du texte sur une carte à partir d'une colonne

Bonjour,

J'ai une couche de noms de rues avec des erreurs qui sont plus facile à corriger à l'aide d'un traitement de texte.


La première étape est de transférer les textes dans une nouvelle colonne de la table MapInfo avec la commande «OBJECTINFO(obj,3)».
Je crée également un identifiant unique avec la commande «RowId».

Deuxième étape: Exportation --> Correction --> Importation.

Troisième étape:
Comment puis-je remplacer les noms de rues avec ceux qui ont été corrigés qui sont dans la colonne du tableau MapInfo?
Je veux, bien entendu, conserver les attributs d'angle, de taille et de police les noms originaux.

Merci.

Hors ligne

 

#2 Tue 02 October 2007 22:04

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: Modifier du texte sur une carte à partir d'une colonne

Bonjour
Si je comprends bien, après importation de la table corrigée tu as deux tables:
la table graphique d'objets textes originale avec son rowid
- la table de données avec le même rowid et des noms corrigés
Une mise à jour de colonne (soit pour remplacer la colonne "fautive", soit pour remplir une nouvelle colonne créée auparavant) peut alors très bien se faire sur le critère d'égalité des 2 rowid
Mais je pressens qu'il y a autre chose ... smile

Hors ligne

 

#3 Wed 03 October 2007 18:35

Marc-André
Participant assidu
Lieu: Montréal
Date d'inscription: 30 Sep 2005
Messages: 688

Re: Modifier du texte sur une carte à partir d'une colonne

Bonjour,

La mise à jour de la colonne ne pose pas problème.
La colonne «fautive» est maintenant une colonne «corrigée».
Les RowId ont servi de lien entre les deux tables.

Se sont les noms de rue affichés dans la fenêtre carte qui sont encore «fautifs».

J'aimerais donner la commande suivante à MapInfo:
«Prends les valeurs de la colonne «corrigée» et utilise les pour corriger les noms de rues dans la fenêtre carte».
Bien entendu, je veux que les noms de rues suivent les rues de la même manière que les noms «fautifs».

Merci.

Hors ligne

 

#4 Wed 03 October 2007 19:44

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: Modifier du texte sur une carte à partir d'une colonne

Bonjour
Je crois que dans ce cas il faudra passer par MapBasic et utiliser ce genre de code (non testé):
- Soit au sein d'une boucle Fetch...Fetch Next

Code:

Alter Object obj Info OBJ_INFO_TEXTSTRING, ma_table.colonne_corrigee

...mais je ne suis pas sûr que ça fonctionne
- Soit au sein d'une boucle 

Code:

For i=1 to (TableInfo(ma_table,TAB_INFO_NROWS))
Fetch Rec i From ma_table
objText = ma_table.obj
Texte = ma_table.colonne_corrigee
ancreX=objectgeography(objText,5)
ancreY=objectgeography(objText,6)
angletikett=objectgeography(objText,7)
Update ma_table Set obj = CreateText(FrontWindow(), ancreX, ancreY, Texte, angletikett, 0, 0)  Where Rowid=i
Next

...qui devrait marcher mais qui impose de définir les paramètres Texte, ancreX, ancreY, angletikett
Bon courage

Hors ligne

 

#5 Thu 04 October 2007 15:44

Marc-André
Participant assidu
Lieu: Montréal
Date d'inscription: 30 Sep 2005
Messages: 688

Re: Modifier du texte sur une carte à partir d'une colonne

Bonjour,

Actuellement, je n'ai pas MapBasic.
La version 9 qui est maintenant gratuite ne fonctionne pas avec MapInfo 8.5

Je garde vos conseils pour un futur pas trop lointain, quand j'aurai MapInfo 9.
En attendant, il y a le copier-coller.

Merci.

Hors ligne

 

#6 Mon 08 October 2007 16:56

NicolasGeorge
Participant assidu
Date d'inscription: 1 Feb 2007
Messages: 266

Re: Modifier du texte sur une carte à partir d'une colonne

Marc-André a écrit:

Actuellement, je n'ai pas MapBasic.


Deuxième solution, exporter un MIF/MID qui se prête mieux au bricolage, et faire les changements avec l'éditeur de texte dans le .MIF (qui contient les textes affichés), puis réimporter...
Attention de ne pas abîmer les mots réservés (tels que text, justify, left, center, right...) cependant.

[EDIT Maurice]...ça risque d'être fastidieux !! Un tout petit mbx, sur la base du code n°2 de ma réponse (qui ne marche qu'avec une table ouverte sous le nom de ma_table - par open table "c:\temp\bidule.tab" as ma_table - et qui comporte une colonne texte nommée  "colonne_corrigée") a donné satisfaction. J'en ferai une version plus "généraliste"...bientôt smile

Hors ligne

 

#7 Tue 09 October 2007 09:15

CRIGBAB
Participant assidu
Lieu: Bayonne
Date d'inscription: 14 Nov 2005
Messages: 180

Re: Modifier du texte sur une carte à partir d'une colonne

Bonjour à toutes et tous

Un petit truc pour rendre utilisable sur une ancienne version de Mapinfo un mbx compilé avec une version plus récente.

Créer votre MBX puis l'éditer sur un éditeur de texte un peu évolué (ultraedit par exemple).
Se mettre en mode hexadecimal
voici un exemple de fichier MBX sur ultraedit

!App
!Version 800
!Charset WindowsLatin1


(la partie gauche des codes asccii des caractères visible sous ultraedit est ici invisible car non modifiable sous l'editeur)

Changer le 800 en 650 et enregistrer le fichier (faites en une copie cela vous permettra de garder l'original)
A priori vous pouvez exécutez ce programme avec une version 6.5 ou plus récente de MI.

La seule contrainte pour que cela fonctionne c'est que le programme fasse appel à des fonctions existantes dans la version MI utilisée.

C'est un truc tout bête qui je l'espère fonctionne encore avec le compilateur Mapbasic 9 qui est gratuit.

Bonne journée

JP LARTIGAU

Hors ligne

 

#8 Tue 09 October 2007 11:38

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: Modifier du texte sur une carte à partir d'une colonne

CRIGBAB a écrit:

...C'est un truc tout bête qui je l'espère fonctionne encore avec le compilateur Mapbasic 9 qui est gratuit...


Malheureusement...non!! Seul MI >= 9.0 saura faire tourner les mbx compilés avec MB9 sad

ps: un outil qui modifie les en têtes des mbx et qui vous évitera de mettre les mains dans le cambouis de l'hexa (et qui en plus rapporte les "mots" éventuellement incompatibles) dans la "mine", as usual... smile

Hors ligne

 

#9 Tue 09 October 2007 19:06

Marc-André
Participant assidu
Lieu: Montréal
Date d'inscription: 30 Sep 2005
Messages: 688

Re: Modifier du texte sur une carte à partir d'une colonne

Merci.

Vos conseils et votre aide m’ont été bien utile.
Les textes sont maintenant modifiés comme je le souhaitais.

Hors ligne

 

Pied de page des forums

Powered by FluxBB