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 Wed 05 October 2016 20:56

tta
Participant occasionnel
Lieu: Montréal
Date d'inscription: 4 Oct 2005
Messages: 39

Extraction d'une valeur dans une chaîne de caractère

Bonjour,

J'ai une table qui contient des attributs descriptifs dans cinq champs. J'aimerai extraire dans l'un des champs, <PLAN_INDEX> la valeur qui se situe à partir de la 13e  position de la chaîne de caractères.Je n'arrive pas à trouver la bonne combinaison dans les fonctions d'extraction de chaîne de caractères Instr et Mid$ à partir d'une mise à jour dans une colonne nouvellement créée. Dans le fichier joint, l'encadré en rouge illustre la chaîne que j'aimerai extraire dans ma nouvelle colonne et qui correspond au numéro d'index.

PS. En passant, le numéro d'index contient le même nombre de caractère pour cette table à l'exception de quelques tables que je n'ai pas encore eu le temps de passer au travers... Les exceptions figurent dans quelques lignes qui comptent deux ou trois caractères de plus

Merci d'avance pour vos suggestions et solutions à ma question.

Hors ligne

 

#2 Thu 06 October 2016 10:09

nicoboud
Membre
Lieu: Nantes
Date d'inscription: 12 Oct 2007
Messages: 860

Re: Extraction d'une valeur dans une chaîne de caractère

Bonjour,

Votre fichier n'est pas joint. Probablement parce qu'il est trop gros (pièces jointes acceptées si >500 Ko).

A priori (sans connaitre votre fichier), si l'extraction doit toujours se faire à partir du 13ème caractère et que la chaine à extraire est de longueur fixe L :

Code:

Mid$(PLAN_INDEX,13,L)

mais je suppose que votre soucis, c'est d'avoir la formule dans les cas où la longueur de chaine à extraire varie.
Pour y arriver, il faut que la fin de chaine à extraire soit suivie d'un même caractère, _ (underscore) par exemple, et que ce caractère ne soit pas présent dans la chaine à extraire.

Si ces conditions sont respectées, la formule serait :

Code:

Mid$(PLAN_INDEX,13,InStr(13,PLAN_INDEX,"_"))

Nicolas.


Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS

Hors ligne

 

#3 Thu 06 October 2016 15:17

tta
Participant occasionnel
Lieu: Montréal
Date d'inscription: 4 Oct 2005
Messages: 39

Re: Extraction d'une valeur dans une chaîne de caractère

Bonjour Nico,

Merci pour votre réponse à ma question. En effet, la première fonction répond à ma question Mid$(PLAN_INDEX,13,4) qui extrait les 4 valeurs de la chaîne de caractère. Cependant, j'ai terminé la vérification des tables à extraire et deux cas de figure se présentent dans les fichiers pour l'extraction des numéros d'index. Malheureusement, le fichier attaché dans mon post précédent n'a pas passé, pourtant moins  de 500ko. Je viens de le réduire en espérant qu'il passe...
Sinon voici un exemple du contenu de la colonne <PLAN_INDEX> et de la chaîne de caractère à extraire: UW_Volume01_0041_1949.pdf. La chaîne de caractère à extraire est 0041. L'autre cas de figure la colonne est: UW_Volume01_0047-2_1964.pdf. Dans ce dernier cas, la chaîne de caractère à extraire est 0047-2.

Merci de votre aide.

Cordialement


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#4 Fri 07 October 2016 11:47

nicoboud
Membre
Lieu: Nantes
Date d'inscription: 12 Oct 2007
Messages: 860

Re: Extraction d'une valeur dans une chaîne de caractère

Bonjour,

J'ai fait un oubli dans ma 2nd formule :

Code:

Mid$(PLAN_INDEX,13,InStr(13,PLAN_INDEX,"_")-13)

Celle-là devrait fonctionner.
InStr renvoie la position par rapport à la totalité du champ, et non la position à partir de la position 13.

Nicolas.


Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS

Hors ligne

 

#5 Fri 07 October 2016 14:49

tta
Participant occasionnel
Lieu: Montréal
Date d'inscription: 4 Oct 2005
Messages: 39

Re: Extraction d'une valeur dans une chaîne de caractère

Bonjour Nico,

Merci beaucoup Nico la formule a fonctionné nickel. Tu m'as sauvé des heures et des heures de plaisirs...

Bon week-end!

Hors ligne

 

Pied de page des forums

Powered by FluxBB