1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
// Résumé : Recherche lexistence d'une série de lettres, ordonnée ou non, dans une chaîne
// Description des paramètres d'entrée/sortie de 'Contient' :
//
// Syntaxe :
//[ <Résultat> = ] Contient (<saSource> est chaîne, <tabLettres> est tableau [, <coOptionRecherche> est COOption])
//
// Paramètres :
// saSource (chaîne ANSI) : Chaîne dans laquelle la recherche doit se faire
// tabLettres (tableau) : Série de lettre à rechercher
// coOptionRecherche (FEN_Test.COOption - valeur par défaut=0) :
// oSansCasse : Recherche sans tenir compte de la casse (différences majuscules / minuscules) ou des accents
// oMotComplet : Recherche un mot complet (entouré par des caractères de ponctuation ou des espaces).
// oOrdonnée : La recherche se fait dans l'ordre de la série ["A","B"] renverra vrai si A et B sont trouvées
// dans cet ordre
// oDroiteGauche : Combinée avec oOrdonnée, la recherche se fait de droite à gauche
// Ces options sont combinables.
// Valeur de retour :
// booléen : Vrai si les lettres existent, Faux sinon.
//
// Exemple :
// SI Contient("CHAT",["a","C"],oSanCasse+oOrdonnée) ALORS
// Trace("OK")
// SINON
// Trace("NOK")
//
FONCTION Contient(LOCAL saSource est chaîne,LOCAL tabLettres est tableau de chaîne sur 1,...
LOCAL coOptionRecherche est COOption=0):booléen
saVérif est chaîne sur 1
nPositionLettre est entier
nOptionContient est entier
nOptionContient=TraiterOption(coOptionRecherche,saSource)
POUR TOUT saVérif DE tabLettres
SI WL.Contient(saSource,saVérif,nOptionContient) ALORS
SI coOptionRecherche[oOrdonné] ALORS
nPositionLettre = Position(saSource,saVérif,1,nOptionContient)
//On continue la recherche avec les lettres qui suivent la lettre trouvée
saSource = saSource[[nPositionLettre+1 À]]
FIN
SINON
RENVOYER Faux
FIN
FIN
RENVOYER Vrai |
Partager