Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
LIRE MOTS CLES TEXTE
|
LIRE MOTS CLES TEXTE ( texte ; tabMotsClés {; *} ) | ||||||||
Paramètre | Type | Description | ||||||
texte | Texte |
![]() |
Texte original | |||||
tabMotsClés | Tableau texte |
![]() |
Tableau contenant les mots-clés | |||||
* | Opérateur |
![]() |
Si passé = mots uniques | |||||
La commande LIRE MOTS CLES TEXTE découpe la totalité du texte en mots et crée, pour chaque mot obtenu, un élément dans le tableau texte tabMotsClés.
Le découpage en mots est effectué à l’aide du même algorithme que celui que 4D utilise pour construire les Index de mots-clés. Cet algorithme est basé sur la librairie ICU. Pour plus d’informations sur les séparateurs pris en compte, reportez-vous à l’adresse suivante : http://userguide.icu-project.org/boundaryanalysis.
Note : A la demande des utilisateurs, une exception a été introduite pour les langages français et italien : le caractère apostrophe ' suivi d’une voyelle ou de la lettre h est considéré comme séparateur de mot. Par exemple, les chaînes "L'homme" ou "l'arbre" seront bien découpées en "L’"+"homme" et "l'"+"arbre".
L’algorithme utilisé diffère si l’option N’utiliser que les caractères non alphanumériques pour les mots-clés est cochée ou non dans les Propriétés de la base.
Passez dans le paramètre texte le texte original à découper. Ce texte peut être stylé, dans ce cas les balises de style sont simplement ignorées.
Passez dans le paramètre tabMotsClés le tableau texte qui sera rempli par la commande avec les mots extraits du texte.
Si vous passez le paramètre optionnel *, la commande ne stockera chaque mot-clé qu’une seule fois dans tabMotsClés. Par défaut, si ce paramètre est omis, tous les mots extraits du texte sont stockés dans le tableau, même s’ils apparaissent plusieurs fois.
Cette commande permet d’effectuer de façon simple des recherches parmi des enregistrements contenant des textes de grande taille, en ayant la garantie d’utiliser les mêmes mots-clés que 4D. Par exemple, soit un texte contenant "10.000 Jean-Pierre BC45". Si le découpage en mots-clés donne "10.000" + "Jean" + "Pierre" + "BC45", le tableau contiendra 4 éléments. Par programmation, il est alors facile d’effectuer une boucle dans ce tableau afin de trouver les enregistrements contenant un ou plusieurs de ces mots-clés à l’aide de l’opérateur % (voir exemples).
Dans un formulaire contenant une zone de recherche, l’utilisateur peut saisir un ou plusieurs mot(s). Lorsqu’il valide, on recherche les enregistrements dont le champ MonChamp contient au moins un des mots saisis par l’utilisateur.
// vSearch est la variable de la zone de saisie dans le formulaire
LIRE MOTS CLES TEXTE(vSearch;tSearch;*)
//* pour le cas où l’utilisateur saisirait le même mot plusieurs fois
NOMMER ENSEMBLE([MaTable];"Globaltrouve")
$n:=Taille tableau(tSearch)
Boucle($i;1;$n)
CHERCHER([MaTable];[MaTable]MonChamp% tSearch{$i})
NOMMER ENSEMBLE(([MaTable];"trouve")
REUNION("Globaltrouve";"trouve";"Globaltrouve")
Fin de boucle
UTILISER ENSEMBLE("Globaltrouve")
Dans le même formulaire que précédemment, on recherche les enregistrements dont le champ MonChamp contient tous les mots saisis par l’utilisateur.
// vSearch est la variable de la zone de saisie dans le formulaire
LIRE MOTS CLES TEXTE(vSearch;tSearch;*)
$n:=Taille tableau(tSearch)
CHERCHER([MaTable];[MaTable]ID >=0;*)
// initialiser la recherche = tous les enregistrements
Boucle($i;1;$n)
CHERCHER([MaTable];&;[MaTable]MonChamp% tSearch{$i};*)
// ajouter le critère
Fin de boucle
CHERCHER([MaTable]) //recherche
Pour compter les mots d’un texte :
LIRE MOTS CLES TEXTE(vTexte;tMots) // tous les mots
$n:=Taille tableau(tMots)
LIRE MOTS CLES TEXTE(vTexte;tMots;*) // mots différents
$m:=Taille tableau(tMots)
ALERTE("Ce texte contient "+Chaine($n)+" mots distincts parmi "+Chaine($m))
Produit : 4D
Thème : Chaînes de caractères
Numéro :
1141
Nom intl. : GET TEXT KEYWORDS
Créé : 4D v13
4D - Langage ( 4D v20 R7)