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 Fri 29 October 2010 09:49

RC
Participant occasionnel
Date d'inscription: 29 Apr 2010
Messages: 20

extraction d'une chaine de caractere d'un champ

Bonjour,
Je travaille sous MapInfo10.
Je souhaiterais extraire de la donnée d'un champ. J'ai une table qui comprend x champs dont un qui s'intitule "Commentaire-expose". Ce dernier contient l'information suivante ex:"Bâti à 100m de la voie; angle vision <45;  voie en déblai" ou "Bâti à 5m de la voie; angle vision <45;  voie en déblai". Je souhaiterais ne garder de ce champ que l'information distance (100). Comment procéder?
Merci par avance.
RC

Hors ligne

 

#2 Fri 29 October 2010 11:13

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

Re: extraction d'une chaine de caractere d'un champ

Bonjour
Si le contenu des cellules est toujours identique à votre exemple; vous pouvez créer une colonne puis la mettre à jour avec une combinaison judicieuse de Instr(1,nom_colonne,"à") et Instr(1,nom_colonne,"de") qui devraient renvoyer dans vos 2 exemples 6 - 13 et 6 - 11, avec l'autre fonction Mid$(nom_colonne,position,longueur), genre
Mid$(nom_colonne,Instr(1,nom_colonne,"à")+2,Instr(1,nom_colonne,"de")-Instr(1,nom_colonne,"à")-4)

Hors ligne

 

#3 Fri 29 October 2010 14:35

RC
Participant occasionnel
Date d'inscription: 29 Apr 2010
Messages: 20

Re: extraction d'une chaine de caractere d'un champ

Merci bien pour votre aide. Tout est OK.

Hors ligne

 

#4 Wed 05 October 2011 10:20

Froggies
Participant occasionnel
Date d'inscription: 3 Aug 2011
Messages: 21

Re: extraction d'une chaine de caractere d'un champ

Bonjour,

J'ai une question similaire car je souhaite extraire un mot d'une longueur variable dans une chaîne de caractère.
C'est le dernier mot de la chaîne donc il faut que je trouve une syntaxe avec le caractère espace?

Une idée de comment je peux faire avec Mapinfo 8.5?

Merci pour le coup de main!

Hors ligne

 

#5 Wed 05 October 2011 10:42

nicolasd
Membre
Lieu: Nevers (58)
Date d'inscription: 5 Sep 2005
Messages: 1045

Re: extraction d'une chaine de caractere d'un champ

Bonjour à Toutes et Tous,

Voici un exemple issu de ce document :

http://www.i-signum.com/download/Mapbasic_sql_US.pdf

Objectif : obtenir une colonne contenant le dernier mot dune phrase

Ceci pourrait se faire par un UPDATE de la colonne appropriée avec Right$(Col_Texte,Len(Col_Texte)-InStr(InStr(1,Col_Text," ")+1,Col_Text," "))
seulement sil y avait toujours 2 noms dans la colonne texte.

Comme il faut s’attendre à en avoir un nombre indéfini à chaque cas, on peut utiliser la procédure suivante qui fait appel à un SELECT dans une procédure itérative de réduction de la chaîne :

1 – ajouter 2 colonnes ( Long Smallint, Droite Char(aussi large que l’originale) )

2 – mettre à jour ces colonnes
update <table> set droite = <col_texte>
update <table> set long = len(droite)

3 – select * from <table> where instr(1, droite, “ “)> 0 into SEL

4 – update SEL set droite=right$( droite, long - instr(1, droite, “ “)) update SEL set long = len(droite) select * from SEL where instr(1, droite, “ “)> 0 into SEL
Répéter 4 en bloc jusqu’à ce qu’il ny ait plus d’objets dans sel. Utiliser naturellement la fenêtre MapBasic pour au moins 4 -.


En espérant vous avoir été utile.

Bonne journée.


Nicolas
------------------------------------------

Hors ligne

 

#6 Wed 05 October 2011 12:01

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

Re: extraction d'une chaine de caractere d'un champ

Merci NicolasD
Je précise que le document évoqué existe avec deux autres "documents spécifiques" sur le site miroir de J. Paris hébergé, devinez par qui ??
par Georezo himself !!
Et que la lecture de ces 3 documents est vivement recommandée (au post #3) dans le sujet de bienvenue sur le forum MapInfo (épinglé en en-tête du forum).

Hors ligne

 

Pied de page des forums

Powered by FluxBB