Jump to content
  • 0

Extraire un nom dans une chaine de caractères


Sadlig
 Share

Question

Bonjour

J'avoue que je galère dans les fonctions de texte. Mon problème est le suivant: Extraire le nom d'un docteur dans une note ou il y a des points, des virgules, des tirets, des chiffres....etc

Cette note est contenue dans unerubrique patient::notes

Ce dont on est sur c'est que le nom à extraire est précédé des 2 caractères "dr" mais on ne connait pas la position de ces 2 caractères dans le texte, ni la longueur du texte.

si vous pouvez m'aider j'appprécierai car j'ai les neurones qui fument un peu...!

S'il y a plusieurs occurence avec le nom du docteur, on prend dans tous les cas la première.

Si vous m'expliquez bien la démarche à suivre, ca me servira pour d'autres recherches d'extraction

Merci

Link to comment
Share on other sites

15 answers to this question

Recommended Posts

  • 0
il y a une heure, Sadlig a dit :

le nom à extraire est précédé des 2 caractères "dr"

Bonjour Gildas,

Plus précisément, le nom du docteur est précédé par "dr ", en principe.

Voici une formule tapée (à la va-vite) dans le visualiseur de données. Tu peux en partir pour mettre en place ta propre fonction.

NB : j'ai fait exprès de mélanger minuscules et majuscules pour qu'on ait confirmation visuelle que la casse ne gênait pas.

Definir (
[
texte = "un super long texte AVEC DES MAJUSCULES mal gérées qui concerne le DR BRÉMONT-DULAC dont le nom de famille n'est composé que d'un mot avec trait d'union"
; position_dr = Position ( texte ; "dr " ; 1 ; 1 )
; position_espace = Position ( texte ; " " ; position_dr ; 2 )
; nom = extrait ( texte ; position_dr ; position_espace - position_dr )
] ;

position_dr

& "¶¶"

& position_espace

& "¶¶"

& nom

)

A te lire,

Jérémie

Link to comment
Share on other sites

  • 0

Merci Jeremy

Je vais regarder ca, depuis tout à l'heure j'ai fait pas mal de progrès en déchiffrant le topic au dessus, j'ai créé ma formule pour extraire le nom, j'arrive à l'avoir en entier mais avec quelques caractères derrière car tous les nom n'ont pas la meme longueur et certains comportent plusieurs mots...bref, tu arrive à point ! Je vais bosser la dessus

Merci

Link to comment
Share on other sites

  • 0

Hello Jeremy

La formule permet de trouver la position de "dr " dans la chaine de caractères et il faut ensuite extraire le nom qui suit

J'arrive au même résultat avec  Définir rubrique (Patient::docteur;Extrait (Patient::texte; Position (Patient::texte; "dr "1; 1)+3;20)

Je determine la position de "Dr " et j'extrais les 20 caractères qui sont à la position +3. Avec ca j'obtiens tous les noms et souvent des caractères en plus......

Le problème est maintenant de traiter le . ou l'espace " " qui sont encore devant le nom dans quelques rares cas, mais ca, ca n'est pas compliqué, il me semble. Ce qui est plus dur est de déterminer ou s'arrête le nom du docteur, et il y encaisse qui ont le nom et le prénom, d'autre qui n'ont que le nom et d'autre qui ont des noms composés....

Link to comment
Share on other sites

  • 0

Bonsoir !

Si le nom du docteur est toujours suivie d’une espace, on pourrait utiliser la fonction MotsDebut en récupérant l’intégralité du texte après « dr ». Ainsi, le premier mot de ce texte tronqué sera bien le nom de famille recherché.

Link to comment
Share on other sites

  • 0

Oui il y a un espace a chaque fois, donc , ca marche, sauf quand c’est un nom composé ou qu’il est suivi d’un prenom. La, c’est un peu insoluble car le nom est souvent noté au hasard dans les notes, il n’y a pas d’endroit précis.

D’un autre coté la base n’est pas enorme et les memes noms reviennet souvent je peux faire des comparaison avec la base pour valider, et quand c’est insoluble definir la rubrique par le mot INCONNU pour qu’on le traite manuellement 

Link to comment
Share on other sites

  • 0
il y a une heure, MagalieJ a dit :

MotsDebut en récupérant l’intégralité du texte après « dr ». Ainsi, le premier mot de ce texte tronqué sera bien le nom de famille recherché

Oui, bien sûr Magalie, j'avais oublié ces possibilités, que ton idée résout :

  • nom du docteur en fin de ligne,
  • nom du docteur en fin de texte,
  • nom du docteur suivi d'un espace ou d'une rubrique.

MotsDebut est parfait, après détection du "dr ".

Link to comment
Share on other sites

  • 0

Je reviens vers vous sur ma recherche des caractères "dr" dans mon texte.

Si effectivement, il est facile de faire une recherche pour repérer les rubriques avec les caractères "dr", il est en est autrement pour trouver la position de ces 2 caractères dans une rubrique dès qu'il y a plusieurs retour chariot. Ca me semble très lourd car si je fais seulement une recherche "dr" avec la fonction position ca ne fonctionne que s'il n'y a pas un retour chariot avant "dr" dans le texte.

Donc il me faudrait repérer systématiquement tous les retours chariot avec la fonction position (donc une boucle), les éliminer avec la fonction substituer, puis enfin analyser le texte à la recherche de "dr" avec la fonction position.

Est ce que mon raisonnement est correct? voyez vous quelque chose de plus simple à faire?

Merci

Link to comment
Share on other sites

  • 0
il y a 8 minutes, Sadlig a dit :

Donc il me faudrait repérer systématiquement tous les retours chariot avec la fonction position

C'est plus simple de les supprimer du texte ou de la rubrique . EN utilisent la fonction de calcul  " Substituer ( Texte ; ¶ ; " " )

Ce qui vas changer , dans ce cas si , tout les retour chariot par des espace .

Link to comment
Share on other sites

  • 0
il y a 14 minutes, Sadlig a dit :

il est en est autrement pour trouver la position de ces 2 caractères dans une rubrique dès qu'il y a plusieurs retour chariot. Ca me semble très lourd car si je fais seulement une recherche "dr" avec la fonction position ca ne fonctionne que s'il n'y a pas un retour chariot avant "dr" dans le texte.

La fonction Position() se fiche éperdument des retours-chariot, au contraire, elle les considère à l'identique de tout autre caractère

 

 

Link to comment
Share on other sites

  • 0

merci pour le tuyau Clem, je ne le savais pas, je découvre les fonctions texte, je vois qu'il y a d'énormes possibilités, donc je teste et je pose des questions....

Link to comment
Share on other sites

  • 0
il y a 12 minutes, Sadlig a dit :

je teste et je pose des questions....

En phase de développemnt, le dataviewer est un outil qu'il ne faut pas négliger ainsi que l'incontournable aide en ligne

Link to comment
Share on other sites

  • 0

bien sur, mais il y en a tellement que la subtilité dont tu m'as parlé m'avais échappé...

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...