#1 Thu 01 March 2007 15:01
- barbs2676
- Participant occasionnel
- Lieu: saint martin d'hères
- Date d'inscription: 24 Feb 2007
- Messages: 19
supprimer qq caractères dans un champ
Bonjour,
J'ai vu qu'il y avait pas mal de chose sur le forum pour supprimer des caractères d'un champ
(ex : %%C250 pour donner 250) mais j'ai un petit soucis.
J'a mapinfo 8.0 et pas mapbasic
Il se passe que j'ai récupéré les diamètres d'un réseau sur mapinfo par la formule objectinfo(obj,3) ce qui me donne donc en caratère %%C250 par ex.
Seulement j'ai un ptit problème pour extraire juste le chiffre car j'ai aussi des diamètres Ø1000 et d'autre de Ø60.
Vu que j'etais parti sur la formule Right$("%%C" + str$(table qui conttient le diamètre en caractère), 3(ou4 c'est pareil) j'ai un resultat qui prend soi just les diamètres avec 3 chiffre (ex :250) soi 2 chiffres (ex :60) et le reste devient 0.
Il y a t'il une formule qui me prendrai en compte ces trois diamètres (à 2,3 et 4 chiffres)?
Grand merci à celui qui me sauve
Hors ligne
#2 Thu 01 March 2007 17:59
Re: supprimer qq caractères dans un champ
Je fais l'hypothèse que le premier caractère du "diamètre' n'est pas zéro. On répète la boucle principale jusqu'à ce qu'il n'y ait plus d'objets dans la sélection
boucle:
select * from your_table where val(left$(1,colonne_diam))=0 into sele
update sele set colonne_diam=right$(colonne_diam, len (colonne_diam)-1)
Vous faites une copie de votre table avant pour plus de sécurité. Vous écrivez ces 2 commandes dans la fenêtre MapBasic et vous n'avez qu'à les exécuter jusqu'à la fin des transformations.
Hors ligne
#3 Thu 01 March 2007 18:10
- barbs2676
- Participant occasionnel
- Lieu: saint martin d'hères
- Date d'inscription: 24 Feb 2007
- Messages: 19
Re: supprimer qq caractères dans un champ
Merci jakesp,
je vais essayer ça tout de suite.
Par contre quand vous parler de la fenêtre mapbasic vous parler simplement de la fenêtre expression qui s'ouvre lorsqu'on fait une mise a jour de colonne ou c'est une application à part (excusez moi d'etre aussi peu renseigner mais je débute dans mapinfo...)
Merci
Hors ligne
#4 Thu 01 March 2007 18:40
- barbs2676
- Participant occasionnel
- Lieu: saint martin d'hères
- Date d'inscription: 24 Feb 2007
- Messages: 19
Re: supprimer qq caractères dans un champ
voici la formule que j'ai mis dans la fenêtre de la table plaq (j'ai changé de table mais c'est la même manip à faire pour extraire toujours ce texte) :
val(left$(1,fildo_txt))=0 str$(fildo_txt=right$(fildo_txt, len (fildo_txt)-1))
Je sais que j'ai enlevé des termes par rapport a votre formule que vous m'avait envoyé mais en recopiant la votre et changeant uniquement le nom du champ par la "colonne_diam" ça marche pas et dans cette nouvelle formule ça marche pas mieux sauf si je mets "and" entre
val(left$(1,fildo_txt))=0 "et" str$(fildo_txt=right$(fildo_txt, len (fildo_txt)-1)) mais il me remet les même caractères (FE:52.35)
Hors ligne
#5 Thu 01 March 2007 21:40
Re: supprimer qq caractères dans un champ
La fenêtre MapBasic est celle que l'on ouvre par le bouton outil-Clé_plate
On y écrit des commandes en Mapbasic en particulier pour les opérations répétitives. Essayez voir avec les deux commandes proposées, en changeant seulement le nom de la table et celui de la colonne et en respectant la syntaxe que j'ai utilisée
Hors ligne
#6 Thu 01 March 2007 21:42
- barbs2676
- Participant occasionnel
- Lieu: saint martin d'hères
- Date d'inscription: 24 Feb 2007
- Messages: 19
Re: supprimer qq caractères dans un champ
Merci de vos conseil, je fais ça de suite.
Hors ligne
#7 Thu 01 March 2007 22:34
- barbs2676
- Participant occasionnel
- Lieu: saint martin d'hères
- Date d'inscription: 24 Feb 2007
- Messages: 19
Re: supprimer qq caractères dans un champ
Merci mille fois jakesp,
j'ai eu du mal à comprendre le système car il manquait juste quelques lettres sur la formule et parce que j'avais jamais utilisé ce système mais vous m'avait fait gagné énormément de temps sur mon travail.
Excellente continuation
Hors ligne