#1 Wed 02 August 2006 16:19
- goujonmp
- Participant occasionnel
- Date d'inscription: 8 Dec 2005
- Messages: 34
Mise à jour colonne
Bonjour,
qu'elle est la formule magique à employer
pour mettre à jour une nouvelle colonne
dans un fichier où l'on veut récupérer que les mots clés (pour
rendre signifiant le tri du fichier par ordre alphabétique des noms de rues)
je m'explique :
on a Rue de la République
Rue Fontenailles
et je veux récupérer seulement le dernier mot de droite
m'arrêter au premier espace en partant de la droite
récupérer République
Fontenailles
merci pour votre aide
et du fabuleux soutient et pourquoi pas l' heureuse compagnie que nous apporte
la lecture des messages de ce site surtout en cette période de
vacances où il est plaisant de savoir qu'il reste encore
quelque passionnés de SIG à l'ouvrage.
Hors ligne
#2 Wed 02 August 2006 17:00
Re: Mise à jour colonne
récupérer seulement le dernier mot de droite
m'arrêter au premier espace en partant de la droite
Le concept de l'extraction de caractères :
1. Déjà, se faire une petite liste avec leur explication des différents termes qui permettent de faire des extractions de caractères, genre Left$(), Trim$() etc... dont on trouve l'explication soit dans le manuel Mapinfo, soit en farfouillant avec ces mots clé dans ce forum ou un autre.
2. Réfléchir à ce que l'on veut et traduire les phrases en mots clés significatifs :
2.a Récupérer le dernier mot de la droite = récupérer le premier mot de gauche : un mot est composé de caractère, donc il faut que Mapinfo extrait les caractères en partant de la fin de la chaine de caractère jusqu'au premier espace qu'il rencontre. Ou les caractères qui suivent le dernier espace de la chaine de caractère.
2.b Récupérer le premier mot de la droite : idem ! Mais dans l'autre sens.
Il y a plusieurs manières de tourner la chose, en focntion des mots clés qu'on utilise. Un peu de gymnastique mentale et ca devrait venir. Sachant qu'on peut imbriquer des fonctions !
Quelques indications (extrait du manuel de référence de mapinfo) :
InStr()
Syntaxe : InStr(position, chaîne de caractères, sous-chaîne)
Action : InStr teste si oui ou non une chaîne de caractères contient une sous-chaîne spécifique. MapInfo scrute la chaîne en partant du caractère indiqué dans le paramètre position. Quand la position est 1, MapInfo commence sa recherche au début de la chaîne. Quand la valeur est 6, MapInfo commence au sixième caractère.
Quand chaîne de caractère contient sous-chaîne, InStr retourne la position du caractère qui constitue le début de sous-chaîne. Dans le cas contraire, InStr retourne 0.
Exemple : Vous vous préparez à géocoder un fichier et vous voulez identifier toutes les entrées contenant une boîte postale dans leur adresse. Cela signifie que vous voulez réunir toutes les entrées qui ont la chaîne "boîte" dans leur intitulé d'adresse. Il se peut aussi que "BP" y figure mais vous ne pouvez en être sûr. Pas plus que vous n'êtes certain de la façon dont est écrit "boîte" (majuscules/minuscules) dans les adresses.
Voici votre expression :
81. InStr(1,UCase$(Adress2),"BOITE")>0
Cette expression demande à MapInfo de rechercher dans la colonne Adresses la chaîne de caractères "BOITE". Toutes les entrées contenant ce mot seront sélectionnées.
Right$( )
Syntaxe : Right$(chaîne de caractères,expression numérique)
Action : Retourne la partie droite de la chaîne spécifiée.
Exemple : Noter l'expression suivante :
103. Right$("population", 4)
Les 4 derniers caractères de la chaîne sont retournés, soit : tion
Left$()
Syntaxe : Left$(chaîne de caractères, nombre)
Action : Retourne une chaîne de caractères limitée aux premiers caractères de la chaîne spécifiée.
Mid$()
Syntaxe : Mid$(chaîne de caractères,position,longueur)
chaîne de caractères est une expression
position est un entier qui indique la position de départ dans la chaîne de caractères ci-dessus
longueur est un entier indiquant le nombre de caractères à extraire
Action : Mid$ retourne une chaîne de caractères de la longueur demandée, commençant à la position spécifiée,dans une chaîne de caractères désignée.
Len()
Syntaxe : Len(chaîne de caractères)
Action : Retourne le nombre de caractères qui figurent dans la chaîne de caractères.
Hors ligne