Extraire un mot à partir de sa position

Contenu du snippet

Petite fonction qui retourne à partir d'une position le mot correspondant...

Source / Exemple :


function ExtractWordAtPos ( Const Source : String ; Const Position : Integer ) : String ;
Const
     // On définit les caractères des mots. On prends tous les caractères,
     // et on en retire les lettres et les caractères accentués.
     Alpha : Set of Char = ['a'..'z','A'..'Z',
                            'é','è','ç','à','ù',
                            'â','ê','î','ô','û','ä','ë','ï','ö','ü',
                            'Ä','Ë','Ï','Ö','Ü','Â','Ê','Î','Ô','Û','1'..'9'
                           ] ;
Var
   L, S, E : Integer ;
Begin
     Result:=EmptyStr;
     L:=Length(Source);
     // Tests initiaux.
     If (Position<1) Or (Position>L) Then
        Exit ;
     If Not (Source[Position] In Alpha) Then
        Exit ;
     // Initialisation : on positionne les index à la position de début de recherche.
     S:=Position ;
     E:=Position ;
     // Recherche vers l'avant : début du mot.
     While (S>1) Do
           If (Source[S-1] In Alpha) Then Dec(S)
                                     Else Break ;
     // Recherche vers l'arrière : fin du mot.
     While (E<L) Do
           If (Source[E+1] In Alpha) Then Inc(E)
                                     Else Break ;
     // Mot trouvé : on l'extrait de la chaîne.
     Result:=Copy(Source,S,(E-S)+1);
End;

Conclusion :


Cette fonction n'est pas de moi mais m'a été donnée par un membre de developpez.com ( merci à lui ).

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (Harvester_)