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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Sat 26 January 2019 15:14

AlbanG
Juste Inscrit !
Date d'inscription: 23 Oct 2018
Messages: 5

QGIS 3.4.4 Madeira: Remplacer une partie du texte d'un champ

Bonjour à tous,

Dans ma table attributaire, je cherche à remplacer une partie du texte d'une colonne par un autre texte.
Par exemple, remplacer :
'DUPONT 2016, p. 52' par 'DUPONT 2017, p. 52'
'DUPONT 2016, p. 123' par 'DUPONT 2017, p. 123'
Etc.
En gros, je ne souhaite remplacer que la partie '2016' par '2017' et ne pas toucher au reste. Comme j'ai quelques dizaines de champs à changer, j'aurais voulu automatiser l'action, un peu comme la fonction "rechercher et remplacer" d'un traitement de texte.

Pour ce faire, dans la calculatrice de champ, j'ai tenté de mettre à jour le champ en utilisant la fonction replace. J'ai essayé de plusieurs façons, mais aucune ne permet de faire ce dont j'aurais besoin.

J'ai essayé replace('2016','2016', '2017'), mais cette action modifie tous les champs de la colonne en '2017', (même ceux qui ne contiennent pas 2016).
J'ai également essayé replace("NOM_DU_CHAMP",'2016','2017'), mais cela remplace tous les champs de la colonne avec la valeur NULL.

Je ne suis donc pas sûr de comprendre le fonctionnement de replace. C'est très pratique quand il s'agit de changer l'intégralité d'un champ, mais quand il ne s'agit que d'une partie du champ, je bloque. Ou peut-être ai-je utilisé la mauvaise fonction.

Mes recherches à ce sujet se sont révélées infructueuses. Je serais très reconnaissant envers la personne qui saura débloquer ma situation.

J'utilise la version 3.4.4-Madeira sur Windows 7.

Bien cordialement, Alban

Hors ligne

 

#2 Sat 26 January 2019 22:40

lylambda
Participant actif
Date d'inscription: 31 Aug 2016
Messages: 127

Re: QGIS 3.4.4 Madeira: Remplacer une partie du texte d'un champ

Bonjour,
Votre seconde approche est pourtant bien la bonne. C'est d'ailleurs spécifié dans l'aide du constructeur de chaine d'expression :

Code:

replace('QGIS SHOULD ROCK','SHOULD','DOES') → 'QGIS DOES ROCK'

Dans votre cas, le NOM_DU_CHAMP doit en effet être entre guillemets ("") et les éléments à échanger doivent bien être entre apostrophes (''). A part une erreur dans l'orthographe de NOM_DU_CHAMP, je ne vois pas ce qui peut poser problème.
Le bug ne doit pas venir de la 3.4.4, j'utilise replace avec cette version sans souci.

Hors ligne

 

#3 Sat 26 January 2019 23:14

AlbanG
Juste Inscrit !
Date d'inscription: 23 Oct 2018
Messages: 5

Re: QGIS 3.4.4 Madeira: Remplacer une partie du texte d'un champ

Je viens de recommencer, cette fois avec succès. Peut-être un bug ponctuel ou, plus vraisemblablement, une erreur de manip de ma part (malgré de nombreux essais !).
Merci pour votre aide, lylambda !

Hors ligne

 

Pied de page des forums

Powered by FluxBB