#1 Fri 06 March 2009 17:31
- was
- Juste Inscrit !
- Date d'inscription: 6 Mar 2009
- Messages: 6
Geoconcept 6.5- Extraction champ avec formule
Bonjour à tous,
je travaille sur Geoconcept, et je ne trouve pas de solution rapide à mon pb, peut être que qqn aura qqls idées :)
>> j'ai ma table "Parcelle" sur laquelle j'ai plusieurs champs de données,
>> dont le champs "IDU" qui possède une codification spécifique, c'est à dire que tous les enregistrements débutent par '102000+le nom de la section+le numéro de parcelle'
je souhaite supprimer ce chiffre 102000 qui se trouve au tout début de chaque enregistrement, et conserver le reste 'section+num parcelle'.
Ça à l'air très bête comme ça, mais je manie pas très bien les formules de GCES.
Des idées.. merci d'avance
Hors ligne
#2 Fri 06 March 2009 18:15
Re: Geoconcept 6.5- Extraction champ avec formule
Bonsoir,
Si c'est bien un champ numérique, je pense qu'en créant un autre champ qui réceptionnera le résultat d'une soustraction de -102000, ça devrait marcher.
@+
Philippe Lépinard
École de l'Aviation Légère de l'Armée de Terre
Hors ligne
#3 Fri 06 March 2009 18:49
- was
- Juste Inscrit !
- Date d'inscription: 6 Mar 2009
- Messages: 6
Re: Geoconcept 6.5- Extraction champ avec formule
merci pour ta réponse Lid,
Et non c'est un champs caractère avec la codification du cadastre, par exemple 102000BS0342,
j'ai un peu bidouillé mais j'ai pas trouvé de méthode "propre"..
Si vous avez des idées merci.
Hors ligne
#4 Mon 09 March 2009 09:28
- naman10
- Participant actif
- Date d'inscription: 7 Nov 2007
- Messages: 118
Re: Geoconcept 6.5- Extraction champ avec formule
bonjour,
je pense qu'en créant un champ qui récupère les données tu peux séparer ton champ IDU.
à partir du champ IDU, tu peux remplir ton champ n° de commune (ça doit être 102 le numéro de ta commune dans ton exemple.
Tu crées donc un champ N° de communes que tu remplis avec la formule : gauche(IDU,3)
3 est le nombre de caractères et IDU le champ visé.
Ensuite pour récupérer ton numéro de section tu fais la même manipulation avec la formule : extrairechaîne(IDU,7,2)
qui extrait les 2 caractères qui se suivent à partir du 7ème caractère.
Pour le numéro de parcelle la formule : droite(IDU,4) devrait être bonne.
Attention aux 0 en trop ainsi qu'aux sections à une seule lettre.
Ensuite tu peux recomposer ton identifiant parcelle en regroupant les 3 champs.
ça fait longtemps que je n'ait pas refait la manipulation mais avec ces formules tu devrais t'en sortir
Bonne journée
Dernière modification par naman10 (Mon 09 March 2009 09:34)
Hors ligne
#5 Mon 09 March 2009 10:47
- was
- Juste Inscrit !
- Date d'inscription: 6 Mar 2009
- Messages: 6
Re: Geoconcept 6.5- Extraction champ avec formule
merci problème résolu, tes explications sont claires naman, j'ai fait la manip ce matin et ça fonctionne très bien,
la journée commence bien ;-)
bonne journée à tous
Dernière modification par was (Mon 09 March 2009 10:48)
Hors ligne
#6 Mon 09 March 2009 14:06
- naman10
- Participant actif
- Date d'inscription: 7 Nov 2007
- Messages: 118
Re: Geoconcept 6.5- Extraction champ avec formule
content d'avoir pu aider! bonne journée!
Hors ligne
#7 Tue 22 November 2011 16:24
- Dams10
- Participant occasionnel
- Lieu: Cantal
- Date d'inscription: 3 Jul 2009
- Messages: 14
Re: Geoconcept 6.5- Extraction champ avec formule
Bonjour,
j'apporte une petite subtilité avec la question suivante :
je cherche à extraire une chaîne de caractères d'un champ, mais cette chaîne est de longueur variable, de 0 (certains objets ne sont pas concernés par la manipulation que je veux mettre en place) à 4 caractères, et bien sûr, ce ne sont quasiment jamais les mêmes caractères que j'ai besoin d'extraire...
Je n'arrive pas à trouver une formule qui me permettrait d'identifier une chaîne de caractères contenus (entre autres caractères) dans le champ. L'opérateur EgalChaine fonctionne en tout ou rien, gauche (ou droite) ne convient pas non plus (rigidité sur la longueur de la chaîne.)
L'idéal serait une fonction du genre Contient(|champ|,'rue') pour isoler, par exemple, 'rue' de 'rue du lac'
Quelqu'un aurait-il une parade ?
Bonne fin de journée,
DB
Hors ligne
#8 Tue 22 November 2011 19:23
- nicolasd
- Membre
- Lieu: Nevers (58)
- Date d'inscription: 5 Sep 2005
- Messages: 1045
Re: Geoconcept 6.5- Extraction champ avec formule
Bonsoir,
Vous pouvez essayer la fonction "extrairechaîne" (champ, position du premier caractère de la chaîne, nombre de caractère de ce mot)
avec (Nom,1,3) sur le champ Nom : rue de la ..., j'obtiens le résultat rue
En espérant vous avoir été utile,
Cordialement,
Nicolas
------------------------------------------
Hors ligne
#9 Wed 23 November 2011 08:43
- nicolasd
- Membre
- Lieu: Nevers (58)
- Date d'inscription: 5 Sep 2005
- Messages: 1045
Re: Geoconcept 6.5- Extraction champ avec formule
Bonjour,
Ma réponse ne me convenait que partiellement mais je pense avoir trouvé la solution.
extrairechaîne(champ,1,Position(champ," ")) vous renvoi le premier mot de votre chaîne de caractère en s’arrêtant au premier espace.
J'ai fait le test : rue de la liberté donne rue, avenue de la liberté donne avenue, etc...
Voilà qui devrait mieux vous convenir.
@+
Nicolas
------------------------------------------
Hors ligne
#10 Wed 23 November 2011 18:36
- Dams10
- Participant occasionnel
- Lieu: Cantal
- Date d'inscription: 3 Jul 2009
- Messages: 14
Re: Geoconcept 6.5- Extraction champ avec formule
Bonsoir,
et merci Nicolas !
En effet, l'idée est très bonne, mais en voulant aller plus loin (ne garder le premier mot du champ concerné que d'une partie de ma classe d'objets, donc en conditionnant la prise en compte de la fonction extrairechaîne) , je me suis rendu à l'évidence : le mieux est l'ennemi du bien.
Impossible de combiner SiChaine/EgalChaine avec ta formule. Du moins ma formule (que j'ai créée sur la base de celle ci-dessus) est-elle correcte, mais ne me renvoie pas le résultat attendu.
Le cas concret :
Soit une classe d'objets représentant un réseau routier. Les noms de voies sont composés du type de voie (pas systématique) abrégé + préfixe (pas systématique lui aussi) + nom tel qu'il apparaît dans un index (ex. : av /de la /Liberté, mais aussi /le /bourg, ou bien encore bd //Condorcet, histoire de dire que tous les cas de figure sont présents, d'où la nécessité de louvoyer sur la séparation des caractères, qui n'est jamais la même.)
Je veux donc conditionner la manipulation de façon à ne prendre en compte dans le champ qui recevra la première partie des noms de voies, que ce qui a à y être (i. e. r, av, bd, rte, et j'en passe) ; le reste (par exemple 'le bourg') n'étant pas concerné et devant par conséquent être ignoré. Je conditionne donc ma formule (ou plutôt celle de Nicolas) avec la fonction SiChaine, couplée à EgalChaine pour identifier les objets concernés (ceux qui ont un type réel, genre rue, avenue etc.)
Et là, avec ma formule, l'intégralité de ma classe d'objets est considérée comme ne répondant pas à la condition et ma formule tombe à l'eau...
Formule que voici :
SiChaine(EgalChaine(extrairechaîne(|nom_rue|,1,Position(|nom_rue|," ")),"AV "),"AV",SiChaine[répétition de la formule avec chacun des autres types de voirie])
J'espère avoir été suffisamment clair dans mon exemple.
Pour en revenir à la solution de Nicolas, elle est satisfaisante en soi, mais ne permet pas d'automatiser la manipulation, puisqu'il faut reprendre ensuite, en sélectionnant à la main, les valeurs attributaires des objets "non concernés" pour les coller dans le bon champ. Je sais bien que les mises à jour du RGE® n'interviennent pas toutes les semaines, mais c'est surtout que cela me permettrait d'avoir le moins possible à y toucher...
Merci d'être allé au bout de ma prose, et bonne soirée,
Damien
Hors ligne
#11 Thu 24 November 2011 12:02
- Dams10
- Participant occasionnel
- Lieu: Cantal
- Date d'inscription: 3 Jul 2009
- Messages: 14
Re: Geoconcept 6.5- Extraction champ avec formule
Bonjour,
perseverare diabolicum est, vous avez dit ? Pas toujours... je suis parvenu à mes fins, aidé en cela par la formule - dont je ne m'étais servi qu'à moitié, en fait - de Nicolas (que je remercie encore.)
Il me fallait, à la fin de la conditionnelle, réécrire l'expression appelant la valeur recherchée plutôt qu'écrire la valeur elle-même.
Bonne journée...
DB
Dernière modification par Dams10 (Fri 25 November 2011 09:57)
Hors ligne
#12 Fri 25 November 2011 13:36
- nicolasd
- Membre
- Lieu: Nevers (58)
- Date d'inscription: 5 Sep 2005
- Messages: 1045
Re: Geoconcept 6.5- Extraction champ avec formule
Bonjour à Toutes et Tous,
Très bon boulot
J'avais aussi pensé à utiliser une table de correspondance comme celle qui apparaît dans les descriptifs de contenu.
@+
Nicolas
------------------------------------------
Hors ligne