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

Annonce

Printemps des cartes 2024

#1 Mon 15 February 2010 16:22

Bazillou
Participant occasionnel
Date d'inscription: 7 Apr 2009
Messages: 15

[MAPINFO 8.0] Suppression de chaine de caractère dans un champ

Bonjour,

J'ai un champ contenant des sections de parcelles cadastrales associées à des numéros de planche cadastrale

Les sections prennent des valeurs de A à Z et continuent jusqu'à AD
Les numéros vont de 1 à 6
Aussi quand la section est "unique", on lui a attribué la valeur U

Du type

A1
A2
BU
CU
ABU
AD1
AD2


... Mon souci est de récupérer de ce champ uniquement les sections, donc de supprimer toutes les valeurs numériques et les "U" quand ceux ci ne correspondent pas à une section.

Etant novice en map basic, je me demandais si l'outil permet ce type d'operation ?

Merci de m'avoir lu,

Cordialement,

Marc BAZILLOU,
stagiaire à la chambre d'agriculture des landes

Hors ligne

 

#2 Mon 15 February 2010 16:50

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

Re: [MAPINFO 8.0] Suppression de chaine de caractère dans un champ

Bonjour,

Vous pouvez utiliser la sélection SQL avec l'opérateur «Like» pour sélectionner et supprimer toute les entrées qui contiennent «U».
La formule à entrer pour les critères devrait ressembler à ceci: Champ1 Like "%U%"

Ensuite, avec le menu «Outil --> Chercher-remplacer», remplacez "1" par "", "2" par"", etc.

Hors ligne

 

#3 Mon 15 February 2010 16:59

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: [MAPINFO 8.0] Suppression de chaine de caractère dans un champ

Salut,

Un post intéresant ---> http://georezo.net/forum/viewtopic.php? … ch+replace
Soit par la FMB ou l'outil --> remplacer le caractère "U" par rien "" puis de même avec 1, 2, 3 etc...
A+
Joël

Dernière modification par Spacejo (Mon 15 February 2010 16:59)

Hors ligne

 

#4 Tue 16 February 2010 08:49

cyril_c
Participant assidu
Lieu: Périgueux
Date d'inscription: 13 Jan 2009
Messages: 176
Site web

Re: [MAPINFO 8.0] Suppression de chaine de caractère dans un champ

Salut
Moi je le ferais en 2 étapes.

1° - Sélection des cellules où il y a deux caractères (Len(nom_champs)=2), puis mise à jour colonne de la requête en ne prenant que le premier caractère de gauche  Left$(nom_champs, 1)
2° - Sélection des cellules où il y a 3 caractères(Len(nom_champs)=3), puis mise à jour colonne de la requête en ne prenant que les 2 premiers caractères de gauche Left$(nom_champs, 2)

La seule chose à prendre en compte est de bien voir si la structure est la même pour toutes les ligne, c'est à dire, y a t-il un U ou un chiffre à la fin de chaque nom de section. Si oui, ça ira vite, si non, il faudra faire les exceptions à la mano!

Car le soucis que je vois avec Remplacer, c'est que tes sections AU, U, BU ... etc, vont être modifiées donc, attention à ce détail (mais s'il n'y a pas de U dans tes noms de zones, ça pourrait marcher)

Hors ligne

 

#5 Tue 16 February 2010 10:00

Bazillou
Participant occasionnel
Date d'inscription: 7 Apr 2009
Messages: 15

Re: [MAPINFO 8.0] Suppression de chaine de caractère dans un champ

Merci pour vos réponses

Oui, je m'étais intéressé à la fonction "search and replace" et effectivement, elle résout mon problème sur les valeurs numériques, mais pas sur les valeurs uniques. Je ne souhaite pas supprimer ces entrées, de la même manière je souhaite les remplacer.

Idéalement, ce serait une fonction chercher-remplacer, remplacer "champ1 like %U" par "%"

Donc en utilisant le code de Joel
Select Colonne_à_Modifier From Table_à_Modifier Where Colonne_à_Modifier like "%U"
Update selection Set Colonne_à_Modifier = "%"

Cela fonctionnerait t'il ?

Merci encore

Marc

Hors ligne

 

#6 Tue 16 February 2010 10:00

Richard Lohier
Participant occasionnel
Lieu: Le perray en yvelines
Date d'inscription: 13 Nov 2006
Messages: 28

Re: [MAPINFO 8.0] Suppression de chaine de caractère dans un champ

Bonjour,
Si j'ai bien compris, il s'agit (en résumé) de ne pas tenir compte du dernier caractère.
L'expression suivante fait cette opération : Left$(NomDeColonne, Len(NomDeColonne)-1)

Cette expression peut être utilisée dans une sélection SQL ou avec la commande 'Table > Mettre à jour colonne'.

Hors ligne

 

#7 Tue 16 February 2010 11:07

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: [MAPINFO 8.0] Suppression de chaine de caractère dans un champ

Salut,

Merci Richard, grâce à toi il est possible de l'avoir en un coup -->
Voilà comment il faut procéder:

Code:

Select Colonne_à_Modifier From Table_à_Modifier Where Right$(Colonne_à_Modifier,1) in (U, 1, 2, 3, 4, 5, 6)
Update selection Set Colonne_à_Modifier = Left$(Colonne_à_Modifier, Len(Colonne_à_Modifier)-1)

A+
Joël

Dernière modification par Spacejo (Tue 16 February 2010 11:17)

Hors ligne

 

#8 Tue 16 February 2010 12:05

Bazillou
Participant occasionnel
Date d'inscription: 7 Apr 2009
Messages: 15

Re: [MAPINFO 8.0] Suppression de chaine de caractère dans un champ

Bon, on va commencer par un grand merci à tous.

L'idée est très bonne est je vais la tester tout de suite, pour l'instant je ne vois pas pourquoi ça ne fonctionnerai pas

Hors ligne

 

#9 Tue 16 February 2010 15:20

Bazillou
Participant occasionnel
Date d'inscription: 7 Apr 2009
Messages: 15

Re: [MAPINFO 8.0] Suppression de chaine de caractère dans un champ

Compte rendu après test :

La selection se fait parfaitement, mais il ne faut pas oublier les guillemets autour de U, 1, 2, ...
Par contre le programme bloque sur la mise à jour, et je n'ai pas encore trouvé où.

Aussi, il y avait le problème mentionné par Cyril. Ma base n'est pas propre et de nombreuses sections uniques n'ont pas été complétées de la valeur "U". Cela ne pose pas de problème en général, la selection elimine ces enregistrements, sauf quand la section s'appelle U.

Enfin je pensais résoudre ce problème avec un search and replace une fois que le programme marchera : remplacer les valeurs vides par "U"

Hors ligne

 

#10 Tue 16 February 2010 15:23

Bazillou
Participant occasionnel
Date d'inscription: 7 Apr 2009
Messages: 15

Re: [MAPINFO 8.0] Suppression de chaine de caractère dans un champ

J'ai rien dit
Je ne crois pas avoir fait qqch de différent, mais maintenant ça marche.
Donc... Merci à tous

Hors ligne

 

Pied de page des forums

Powered by FluxBB