#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