#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
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
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é --> 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
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
Re: probleme de syntaxe pour la fonction replace dans arcgis
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