ne différencie pas les caractères majuscules des caractères minuscules, ne tient pas compte des espaces situés avant et après la chaîne à tester, ne tient pas compte des caractères accentués minuscules, ne tient pas compte des espaces et des ponctuations à l'intérieur des chaines.
PROCEDURE Split( ChaineSource est une chaine, CaractereSeparateur est une chaine, bSupprimeEspace est un booléen = Faux )
tbl est un tableau dynamique de 0 chaines
sListe est une chaine = ChaineSource
sUnMot est une chaine
POUR TOUTE CHAINE sUnMot DE SListe SEPAREE PAR CaractereSeparateur
Si bSupprimeEspace = Vrai Alors
sUnMot = SansEspace( sUnMot )
Fin
TableauAjoute( tbl, sUnMot )
FIN
RENVOYER tbl
//On remplace le points virgules par des virgules
ValDifficultes = Remplace( ValDifficultes, ";", "," )
//On remplace les deux points par des virgules
ValDifficultes = Remplace( ValDifficultes, ":", "," )
//On remplace les espaces par des virgules
ValDifficultes = Remplace( ValDifficultes, " ", "," )
//On peut continuer comme çà
tblVar = Split( ValDifficultes, ",", Vrai )
SELECT
CLIENT.NumClient AS NumClient,
CLIENT.Civilité AS Civilité,
CLIENT.NomClient AS NomClient,
CLIENT.DateNaissance AS DateNaissance
FROM
Client
sClientRecherche est une chaine = "dupon"
Sql est une chaine
Rs est une source de donnees
Sql =
[
SELECT
CLIENT.NumClient AS NumClient,
CLIENT.Civilité AS Civilité,
WL.Phonétique(CLIENT.NomClient) As RubTest
CLIENT.NomClient AS NomClient,
CLIENT.DateNaissance AS DateNaissance
FROM
Client
WHERE
RubTest LIKE
]
Sql += "'%" + WL.Phonetique(sClientRecherche) + "%'"
//On construit la condition
Pour Ind = 1 a Dimension( tblVar)
sCondition += RC + "[Difficultés] LIKE '%" + tblVar[Ind] + "%' "
Fin
//On construit la condition
Pour Ind = 1 a Dimension( tblVar)
sCondition += RC + "RubTest") LIKE '%" + WL.Phonétique(tblVar[Ind]) + "%' "
Fin
Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=17&topic_id=5474&post_id=22519