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 Tue 30 January 2007 09:13

Trotamundos
Participant assidu
Lieu: Geneva
Date d'inscription: 16 Jan 2007
Messages: 230

ArcGIS 9.2 - Manipulation de label en VBScript

Bonjour,

Sous ArcGIS 9.2, je cherche un petit VBScript me permettant d'affiner mes labels. Par exemple, mon attibut est MOSCOW et je cherche à l'indiquer sur la carte en Moscow, avec la première lettre en majuscule et le reste en minuscule. J'arrive facilement à tout mettre en majuscule ou minuscule mais pas avec une seule lettre en majuscule. Je pense qu'il faut concaténer mais je ne sais pas comment, en VB, extraire le premier caractère d'un string et ensuite concaténer le reste. Par extension, comment pourrais-je effectuer la même manip mais avec un champ attributaire comprenant plusieurs mots, par exemple, SAINT PETERSBURG en Saint Petersburg. Là, il s'agit encore en concaténer mais aussi de manipuler un deuxième mot. Si un expert en VB pour m'aider, merci...

Hors ligne

 

#2 Tue 30 January 2007 12:21

nicolas valls
Participant assidu
Date d'inscription: 28 Oct 2005
Messages: 154

Re: ArcGIS 9.2 - Manipulation de label en VBScript

Bonjour, vous pouvez tester ça :
Ucase(left(champ,1)) & lcase(right(champ,len(champ)-1))

en espérant que ça marche
Pour ce qui est des noms composé c'est un peu plus complexe, il faudrait le découper en plusieurs variables (autant que de mots) et se servant de l'espace pour repérer la coupure
Par exemple en mode avancé
function FindLabel([champ])
dim position_espace as byte, variable1 as string, variable2 as string, resultat as string
position_espace=instr([champ]," ") 'je récupére la position de l'espace
variable1 = left([champ],position_espace-1) ' je recupére le premier mot
variable1=Ucase(left(variable1,1)) & lcase(right(variable1,len(variable1)-1)) 'je met en majuscule la première lettre et en minuscule les autres
variable2=right([champ],len([champ])-position_espace)
variable2=Ucase(left(variable2,1)) & lcase(right(variable2,len(variable2)-1))
resultat= variable1 & " " & variable2
FindLabel=resultat
end function

Je pense que ca devrait marcher

Dernière modification par nicolas valls (Tue 30 January 2007 12:33)


Nicolas VALLS
Géomaticen
Cabinet Pierre GRILLET

Hors ligne

 

#3 Wed 24 April 2013 16:13

Razorbak
Participant assidu
Lieu: Clermont Ferrand
Date d'inscription: 7 Oct 2007
Messages: 505

Re: ArcGIS 9.2 - Manipulation de label en VBScript

Bonjour,

Je reviens sur le sujet car je vais bientôt être confronté au même problème.
J'ai donc testé la solution pour des noms simples et ça fonctionne parfaitement.

Par contre, pour les noms composés, j'obtiens un message d'erreur du type "L'expression contient une erreur".
Sauf que je ne sais pas où elle se trouve...

Si quelqu'un a la solution, je suis preneur. Merci

Bonne journée

Hors ligne

 

#4 Wed 24 April 2013 19:59

Kevin Jousseaume
Participant assidu
Lieu: Nanterre, région parisienne
Date d'inscription: 20 Mar 2006
Messages: 217

Re: ArcGIS 9.2 - Manipulation de label en VBScript

Bonjour,

Je pense que vous trouverez votre bonheur ici : http://georezo.net/forum/viewtopic.php?id=84678

Bonne soirée,
Kevin

Hors ligne

 

Pied de page des forums

Powered by FluxBB