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

GEODATA DAYS 2024

#1 Fri 16 August 2013 16:54

LESIMIC12
Participant occasionnel
Date d'inscription: 7 Aug 2013
Messages: 13

probleme de syntaxe pour la fonction replace dans arcgis

bonjour,

J'ai champ nommé "Num_lot" et il ne porte que des numéro de Lots cependant devant tous mes numéros il ya la en abrégé Lt (exemple: Lt209).
Je souhaiterais remplacer tous si-possible supprimer tous Lt devant mes numéro de sorte à avoir ( 209).

C'est vrai je peux le faire manuellement mais le problème c'est que j'ai plus de 10 000 enregistrements et je n'arrive pas à appliquer correctement la fonction replace  du champ de calculateur il me ramène toujours un message d'erreur puis grâce votre code exhaustif j'aurais au moins appris quelques chose en vb ou python je pense que mon cerveau supportera

merci d'avance

Dernière modification par LESIMIC12 (Fri 16 August 2013 17:39)

Hors ligne

 

#2 Fri 16 August 2013 18:34

LESIMIC12
Participant occasionnel
Date d'inscription: 7 Aug 2013
Messages: 13

Re: probleme de syntaxe pour la fonction replace dans arcgis

voici des valeurs que contiennent mon champ nommé "Num_lot"
Lt102
Lt105
Lt205
Lt708

le problème c'est que j'ai doit supprimer les Lt qui sont inscrit au début de chaque numéro de lot. j'ai eu l'idée d'utilider la fonction replace dans le calculateur de champ, l'idée était de remplacer Lt par rien du tout mais n'étant pas vraiment calé en programmation j'aurais besoin de votre aide
merci d'avance

Hors ligne

 

#3 Mon 19 August 2013 09:35

Frapru
Participant occasionnel
Date d'inscription: 6 Jul 2012
Messages: 22

Re: probleme de syntaxe pour la fonction replace dans arcgis

Bonjour

au cas où vous n'y avez déjà pensé : créez un nouveau champs NUMERO par exemple puis clic droit "Calculateur de champs" vous choississez "Type" "Chaîne" puis dans le choix des fonctions vous prenez "Right()".
Pour avoir comme valeur que les numéros de lots vous tapez donc Right([Num_lot],3) et normalement vous avez comme valeur dans votre champs NUMERO : 102 si dans votre champs Num_lot vous avez Lt102.

Espérant que ça puisse vous aider

Franck

Hors ligne

 

#4 Mon 19 August 2013 10:04

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

Re: probleme de syntaxe pour la fonction replace dans arcgis

Salut,

Comme tu veux récupérer la valeur d'environ 10 000 enregistrements --> Right([Num_lot], Len([Num_lot]) -2)
A+
Joël

Hors ligne

 

#5 Mon 19 August 2013 10:17

Frapru
Participant occasionnel
Date d'inscription: 6 Jul 2012
Messages: 22

Re: probleme de syntaxe pour la fonction replace dans arcgis

@Spacejo

Effectivement j'ai du lire trop vite j'avais pas fait attention aux 10 000 enregistrements.... Ma proposition ne vaut bien sur que si les valeur n'étaient que comme :

voici des valeurs que contiennent mon champ nommé "Num_lot"
Lt102
Lt105
Lt205
Lt708

Hors ligne

 

#6 Mon 19 August 2013 12:33

LESIMIC12
Participant occasionnel
Date d'inscription: 7 Aug 2013
Messages: 13

Re: probleme de syntaxe pour la fonction replace dans arcgis

salut,
merci pr votre aide spacejo, problème resolu
cependant j'aimerai savoir si quelqu'un peut me donner la syntaxe complète afin que je puisse
moi aussi écrire un programme dans arcgis

Hors ligne

 

#7 Mon 19 August 2013 12:40

LESIMIC12
Participant occasionnel
Date d'inscription: 7 Aug 2013
Messages: 13

Re: probleme de syntaxe pour la fonction replace dans arcgis

salut, c'est encore moi
oui je sais en fait je souhaiterais apprendre à pêcher  au lieu de me contenter de la boite de sardine, bref pouvez vous me dire comment utiliser la fonction replace dans le calculateur de champ  de arcgis exemple remplacer 'a ' par 'b'. avant toutes chose je vous informe que j'ai longuement méditer sur la documentation en ligne de ESRI.

GeoZero, le fil narcophone de l'apprentissage

Dernière modification par LESIMIC12 (Mon 19 August 2013 12:43)

Hors ligne

 

#8 Mon 19 August 2013 12:55

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

Re: probleme de syntaxe pour la fonction replace dans arcgis

Voilà un lien avec des exemples
---> http://ressources.esrifrance.fr/form_ca … aract.aspx
Concernant la fonction "replace" --> Replace( [CHAMP]  , "Chaîne à remplacer" , "Chaîne de remplacement" )
---> Replace( [Num_lot]  , "Lt" , "" )
Ceci est en VBscript (je ne sais pas sur quelle version tu travailles mais il me semble qu'à partir de la version 10 la calculette accepte d'autres languages)

Hors ligne

 

#9 Mon 19 August 2013 14:06

Frapru
Participant occasionnel
Date d'inscription: 6 Jul 2012
Messages: 22

Re: probleme de syntaxe pour la fonction replace dans arcgis

Ceci est en VBscript (je ne sais pas sur quelle version tu travailles mais il me semble qu'à partir de la version 10 la calculette accepte d'autres languages)


Oui la calculette accepte aussi le python

Sinon tu peux aller dans l'aide ArcGis et taper "Calculer des exemples de champs" dans l'onglet "Rechercher" c'est pas mal expliqué

Hors ligne

 

#10 Tue 20 August 2013 13:42

LESIMIC12
Participant occasionnel
Date d'inscription: 7 Aug 2013
Messages: 13

Re: probleme de syntaxe pour la fonction replace dans arcgis

Merci je vais immédiatement fureter vers le lien que vous m'avez indiqué

cependant le code  fourni par Frapru  Right([Num_lot],3) marche bien et il a même fonctionné sur mes 33 782 enregistrements. je ne comprend pas pourquoi spacejo l'a modifié  en cette proposition Right([Num_lot], Len([Num_lot]) -2). que fait la deuxième fonction Len([Num_lot]) -2)
au fait j'utilise arcgis desktop 10

Dernière modification par LESIMIC12 (Tue 20 August 2013 13:43)

Hors ligne

 

#11 Tue 20 August 2013 14:54

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

Re: probleme de syntaxe pour la fonction replace dans arcgis

Salut,

cependant le code  fourni par Frapru  Right([Num_lot],3) marche bien et il a même fonctionné sur mes 33 782 enregistrements


As tu vérifié que tes enregistrements ne sont composés que de 3 caractères?

Prenons un exemple:
La fonction Right prends les caractères à partir de la droite, le nombre de caractères est spécifié --> 3 donc pour Lt5656 celà donne 656 et non 5656
La fonction len retourne le nb de caractère de la chaine concernée donc dans notre exemple --> 6 --> 6-2 car (Len([Num_lot]) -2) --> 4 donc 4 caractères à partir de la droite soit 5656
Le -2 correspond à "Lt"
En espérant être clair
A+
Joël

Dernière modification par Spacejo (Tue 20 August 2013 15:02)

Hors ligne

 

#12 Tue 20 August 2013 14:56

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

Re: probleme de syntaxe pour la fonction replace dans arcgis

que fait la deuxième fonction Len([Num_lot]) -2)


Elle indique de prendre tout ce qui n'est pas les deux premiers caractères à gauche.
En gros, elle enlève Lt et prend ce qui vient après.

Il est surprenant que ça ait marché au delà de 999 (à moins que vous n'ayez aucun chiffre allant au delà), car le code indique de prendre les 3 caractères de droite, donc Lt1234 donnera comme chiffre avec le premier code : 234. Alors que le code retouché par Joel retournera : 1234

EDIT : Joel a été plus rapide pour répondre.

Hors ligne

 

#13 Tue 20 August 2013 15:23

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

Re: probleme de syntaxe pour la fonction replace dans arcgis

Pour t'aider tu peux aussi faire des recherches sur le forum ---> http://georezo.net/forum/search.php
Tu prends comme mot clef "Len" (dans la section Forum --> ESRI) ou toute autre fonction et tu devrais trouver de nombreux exemples
Bon courage

Dernière modification par Spacejo (Tue 20 August 2013 15:24)

Hors ligne

 

#14 Tue 20 August 2013 17:29

Frapru
Participant occasionnel
Date d'inscription: 6 Jul 2012
Messages: 22

Re: probleme de syntaxe pour la fonction replace dans arcgis

Il est surprenant que ça ait marché au delà de 999 (à moins que vous n'ayez aucun chiffre allant au delà), car le code indique de prendre les 3 caractères de droite, donc Lt1234 donnera comme chiffre avec le premier code : 234. Alors que le code retouché par Joel retournera : 1234


Oui je suis étonné aussi que cela ait fonctionné pour les 33 782 enregistrements car comme l'ont très bien expliqué Joel et Robin ce code ne prend que les 3 caractères à droite, je n'avais pas du être assez clair avant en fait

Hors ligne

 

#15 Tue 20 August 2013 19:16

LESIMIC12
Participant occasionnel
Date d'inscription: 7 Aug 2013
Messages: 13

Re: probleme de syntaxe pour la fonction replace dans arcgis

OUP QUELLE GAFE je vais verifier tou de suite

Hors ligne

 

#16 Wed 21 August 2013 10:59

LESIMIC12
Participant occasionnel
Date d'inscription: 7 Aug 2013
Messages: 13

Re: probleme de syntaxe pour la fonction replace dans arcgis

merci en effet j'ai du me precipité survoler la verification
j'ai des valeurs comme Lt12, Lt1, Lt2 je sais vous comprener bien les types d'erreurs que j'ai pu occasionner.
mais heureusement mais valeurs sont en dessous de 999. les numero de lot se repètent evidemment mais grace au numero de section et Ilot qui diffère il n'ya pas de confusion.

je crois que la meilleure fonction dans mon cas c'est celle qui prend les valeurs en excluant les deux premiers

Hors ligne

 

#17 Wed 21 August 2013 11:21

LESIMIC12
Participant occasionnel
Date d'inscription: 7 Aug 2013
Messages: 13

Re: probleme de syntaxe pour la fonction replace dans arcgis

merci en effet j'ai du me precipité survoler la verification
j'ai des valeurs comme Lt12, Lt1, Lt2 je sais vous comprener bien les types d'erreurs que j'ai pu occasionner.
mais heureusement mais valeurs sont en dessous de 999. les numero de lot se repètent evidemment mais grace au numero de section et Ilot qui diffère il n'ya pas de confusion.

je crois que la meilleure fonction dans mon cas c'est celle qui prend les valeurs en excluant les deux premiers à gauche

Hors ligne

 

#18 Wed 21 August 2013 11:34

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

Re: probleme de syntaxe pour la fonction replace dans arcgis

Bonjour,

Avez vous vérifié que Lt est bien présent sous cette forme partout ? Si jamais vous avez :Ab, Cd, et surtout Def (3 lettres) en préfixe, vous risquez d'avoir des soucis.

Hors ligne

 

#19 Wed 21 August 2013 11:42

LESIMIC12
Participant occasionnel
Date d'inscription: 7 Aug 2013
Messages: 13

Re: probleme de syntaxe pour la fonction replace dans arcgis

a l'aide j'ai  la fonction  Len me renvoi un message d'erreur.

Hors ligne

 

#20 Wed 21 August 2013 11:51

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

Re: probleme de syntaxe pour la fonction replace dans arcgis

a l'aide j'ai  la fonction  Len me renvoi un message d'erreur.


Salut,
Peut t'on connaître ce message d'erreur?

je crois que la meilleure fonction dans mon cas c'est celle qui prend les valeurs en excluant les deux premiers


C'est le code que je t'ai envoyé wink --> Right([Num_lot], Len([Num_lot]) -2)
As tu fait comme Frapru te l'avais conseillé --->

créez un nouveau champs NUMERO


Ainsi tu as encore ton ancien champ Num_Lot intacte
A+
Joël

Dernière modification par Spacejo (Wed 21 August 2013 12:19)

Hors ligne

 

#21 Thu 22 August 2013 10:07

LESIMIC12
Participant occasionnel
Date d'inscription: 7 Aug 2013
Messages: 13

Re: probleme de syntaxe pour la fonction replace dans arcgis

en fait  j'avais utilisé la fonction en faisant un copié coller de ton code  sur le champ numero afin qu'il enlève Lt et renvoi tous ce qui vient après. et le calculateur y voit une erreur de syntaxe !

Youpi,  grace à la fonction replace fourni par spacejo j'ai resolu le problème cependant comment utilise t_on  la fonction Len
Franchement ce site est très cool merci vraiment à tous on y apprend bien trop vite

Dernière modification par LESIMIC12 (Thu 22 August 2013 10:11)

Hors ligne

 

#22 Thu 22 August 2013 11:01

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

Re: probleme de syntaxe pour la fonction replace dans arcgis

La fonction Len([MON_CHAMP]) retourne le nombre de caractères fournis dans la colonne MON_CHAMP.
C'est une fonction VBA : http://msdn.microsoft.com/fr-fr/library … s.90).aspx

Spacejo a imbriqué celle ci dans une autre fonction à la place de N, la fonction Right([MON_CHAMP], N), qui renvoie les N caractères en partant de la droite de la colonne MON_CHAMP

Hors ligne

 

#23 Thu 22 August 2013 11:09

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

Hors ligne

 

#24 Wed 28 August 2013 16:39

LESIMIC12
Participant occasionnel
Date d'inscription: 7 Aug 2013
Messages: 13

Re: probleme de syntaxe pour la fonction replace dans arcgis

Probleme entièrement resolu merci à Robin pour tes explication j'ai tout pigé je crois que les fonctions vba n'ont plus de secret pour moi pardon je veux dire la fonction Len , Right et Replace

Hors ligne

 

Pied de page des forums

Powered by FluxBB