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 Wed 31 March 2010 17:23

gorias
Participant actif
Date d'inscription: 9 Sep 2005
Messages: 60

[ArcGis9.3.1] Incrementation Identifiant texte

Bonjour à toutes et à tous,

J'ai un petit soucis sous ArcGIS concernant l'incrémentation automatisée d'un champ de type texte sous la forme:
ABC_n, ABC_n+1, ABC_n+2...
Ne connaissant pas l'équivalent de Row_id sous ArcGis, j'ai assayé de contourner le problème en mettant mon champ à jour comme suit :
"ABC_"+"[FID]" mais évidemment cela me donne ABC_[FID], ou bien "ABC_"+chr([FID]) mais non...

Quelqu'un aurait-il une solution ? Merci d'avance !

Bonne journée
Grégory

Hors ligne

 

#2 Wed 31 March 2010 18:07

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

Re: [ArcGis9.3.1] Incrementation Identifiant texte

Salut,

Ne serait ce pas ? ---> "ABC_"+'[FID]'
A+
Joël

Hors ligne

 

#3 Thu 01 April 2010 10:13

gorias
Participant actif
Date d'inscription: 9 Sep 2005
Messages: 60

Re: [ArcGis9.3.1] Incrementation Identifiant texte

Salut Spacejo

ta solution produit un message d'erreur..
En tatonnant un peu j'ai fini par trouver ce que je voulais : "ABC_"+Format([FID]+1)
le"+1" vient du fait que le champ "FID" est incrémenté à partir de zéro

Bonne journée la communauté !
greg

Hors ligne

 

#4 Thu 01 April 2010 11:37

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

Re: [ArcGis9.3.1] Incrementation Identifiant texte

Effectivement associé un champs texte et un numérique (FID) ne convient pas.
Une conversion s'impose avec "format"
Merci du suivi
A+
Joël

Dernière modification par Spacejo (Thu 01 April 2010 11:43)

Hors ligne

 

#5 Thu 07 June 2012 19:39

iDCao
Juste Inscrit !
Date d'inscription: 19 Sep 2011
Messages: 4

Re: [ArcGis9.3.1] Incrementation Identifiant texte

Bonjour,

Je reviens sur ce sujet.
J'ai bien réussit à faire 3 lettre + FID mais ma problématique est que je dois avoir 9 charactères.

Je dois avoir à la fin : NDI999999

Pour l'instant j'utilise : "NDI" & '[FID]' + 1  qui incrémente parfaitement mais il manque des numéros.

Exemples :
NDI000001
NDI000002
NDI000003
...


Help!
Merci de votre aide.

Dernière modification par iDCao (Thu 07 June 2012 19:40)

Hors ligne

 

#6 Fri 08 June 2012 08:21

Nicolas Granier
Participant assidu
Date d'inscription: 19 Apr 2007
Messages: 271

Re: [ArcGis9.3.1] Incrementation Identifiant texte

Bonjour,

Ceci devrait vous aider.

Analyseur : Python
Cocher la case "Afficher le bloc de code"

Code de script Pre-Logic :

Code:

def calcul (nombre) :
 longueurNumero = 6
 prefixe ="NDI"
 zero= "0" * (longueurNumero  -  len(str(nombre)))
 chaine = prefixe +  zero + str(nombre)
 return chaine

Nom du champ que vous calculer =

Code:

calcul ( !FID! )

A+
Nicolas GRANIER

Hors ligne

 

#7 Fri 08 June 2012 17:16

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 992

Re: [ArcGis9.3.1] Incrementation Identifiant texte

Je fais souvent ce genre de calcul avec les chiffres codés sur x caractères. Pour cela j'utilise la fonction right() (droite) de la sorte, sans passer par la programmation :

Code:

"NDI"&right("00000"&[FID]+1,6)

A+

Sylvain M.


Sylvain M.

Hors ligne

 

#8 Fri 08 June 2012 17:48

Renaud
Membre
Lieu: Ploemeur (56)
Date d'inscription: 9 Mar 2006
Messages: 2315

Re: [ArcGis9.3.1] Incrementation Identifiant texte

Mais c'est bon sang bien sûr !
Merci pour cette utilisation de right(), ça va raccourcir mes formules smile


Renaud Mouche

Hors ligne

 

#9 Sat 09 June 2012 16:37

Franck B
Membre
Lieu: PACA
Date d'inscription: 6 Sep 2005
Messages: 1382
Site web

Re: [ArcGis9.3.1] Incrementation Identifiant texte

Bonjour,

En python (choisir : Analyseur : Python), il est aussi possible de faire plus court de la même manière que le code VBScript indiquer par Sylvain :

Code:

"NDI%s" % (str(!FID!+1).zfill(6))

A+

Franck

Hors ligne

 

#10 Fri 07 September 2012 13:01

iDCao
Juste Inscrit !
Date d'inscription: 19 Sep 2011
Messages: 4

Re: [ArcGis9.3.1] Incrementation Identifiant texte

Bonjour à tous

Merci de vos réponses avec des techniques différentes très enrichissantes !
Maintenant je maitrise l'incrémentation Numérique.

Passage à l'étape suivante

Une nouvelle problématique s'ouvre à moi maintenant quand je dépasse NDI999999 Je dois passer à NDIA00001 puis NDIA00002 puis NDIA00003... NDIA99999, NDIB00001...

J'arrive à faire le décompte Alphanumérique mais j'ai du mal à l'intégrer dans le code de "Nicolas Granier" en Python.
Si vous pouvez me donner un coup de pouce...

A très bientôt!
Gaël

Dernière modification par iDCao (Fri 07 September 2012 14:26)

Hors ligne

 

#11 Fri 07 September 2012 16:04

Nicolas Granier
Participant assidu
Date d'inscription: 19 Apr 2007
Messages: 271

Re: [ArcGis9.3.1] Incrementation Identifiant texte

Bonjour,

Voici un exemple pour passer de NDI à NDIA

Code:

def calcul (nombre) :
 if nombre>999999 :
  new_num =nombre - 1000000
  prefixe ="NDIA"
 else :
  prefixe ="NDI"
  new_num =nombre
 longueurNumero = 6
 zero= "0" * (longueurNumero  -  len(str(nombre+1)))
 chaine = prefixe +  zero + str(nombre+1)
 return chaine

Si vous devez aller jusqu'à la lettre z, je vous conseille d'améliorer le code.
A+

Dernière modification par Nicolas Granier (Fri 07 September 2012 16:07)

Hors ligne

 

Pied de page des forums

Powered by FluxBB