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