Pages: 1
- Sujet précédent - [MAPINFO 8.0] Suppression de chaine de caractère dans un champ - Sujet suivant
#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
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
Pages: 1
- Sujet précédent - [MAPINFO 8.0] Suppression de chaine de caractère dans un champ - Sujet suivant