Pages: 1
- Sujet précédent - QGIS 3.4.4 Madeira: Remplacer une partie du texte d'un champ - Sujet suivant
#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
Pages: 1
- Sujet précédent - QGIS 3.4.4 Madeira: Remplacer une partie du texte d'un champ - Sujet suivant