version 6.5
WR Chercher (zone; aChercher; motEntier; majuscules; toutLeDoc) Entier long
Paramètre | Type | Description | |
zone | Entier long | Zone 4D Write | |
aChercher | Alpha | Chaîne à chercher | |
motEntier | Entier | 0=Partie de mot | |
1=Mot entier | |||
majuscules | Entier | 0=Ignorer majuscules | |
1=Ne pas ignorer majuscules | |||
toutLeDoc | Entier | 0=Chercher du curseur à la fin du document | |
1=Chercher dans tout le document | |||
Résultat | Entier long | Statut de la recherche |
Description
La commande WR Chercher permet de rechercher une chaîne de caractères dans une zone 4D Write. Vous pouvez obtenir la position des mots trouvés grâce à WR LIRE MOTS ou la position de la sélection trouvée par WR LIRE SELECTION. Si l'expression est trouvée, la fonction retourne 1 et sélectionne la première occurence trouvée.
Si la recherche a été infructueuse, la fonction retourne 0 et la sélection courante ne change pas. Si zone n'existe pas, la fonction retourne -1.
Les arguments motEntier et majuscules vous permettent de spécifier la manière dont la recherche va s'effectuer :
Si motEntier est égal à 1, le mot doit être trouvé entouré de caractères séparateurs (espaces, caractères de ponctuation, etc.), sinon il pourra faire partie d'une chaîne de caractères.
Si majuscules est égal à 1, la recherche tiendra compte des majuscules et ne trouvera pas "Bonjour" si vous lui demandez de chercher "BONJOUR".
La recherche débute à l'emplacement courant du curseur. L'argument toutLeDoc permet de spécifier si la recherche porte sur l'intégralité du document ou uniquement sur la portion comprise entre le curseur et la fin du document. Si toutLeDoc est égal à 1, la recherche s'effectue sur tout le document (à la fin du document, elle repart du début jusqu'à la position du curseur), si toutLeDoc est égal à 0, elle stoppe à la fin du document.
Exemples
(1) Vous demandez à l'utilisateur ce qu'il veut chercher, puis lancez la recherche sur ce texte :
AChercher:=Demander("Saisissez le texte à rechercher :") Si(OK=1) WR FIXER SELECTION(LaZone;0;0) Si(WR Chercher(LaZone;AChercher;1;1;1)=0) ALERTE("Aucun mot ne correspond à votre demande.") Fin de si Fin de si
(2) Cet exemple propose une méthode de recherche par mot-clé dans des zones Images sur une sélection d'enregistrements.
Note : Si vous avez opté pour l'association des zones 4D Write à des champs BLOB, veuillez vous reporter à l'exemple présenté dans la description de la commande WR Chercher direct, beaucoup plus rapide.
Vous possédez une base contenant des recettes de cuisines. Celles-ci ont été enregistrées dans des champs Images. Vous désirez pouvoir extraire toutes les recettes contenant un ingrédient particulier. Voici l'exemple vous permettant d'obtenir cette sélection :
Achercher:=Demander("Quel ingrédient désirez-vous rechercher ?") `Création d'un ensemble vide dans lequel vont être placés tous les enregistrements `contenant l'ingrédient recherché ENSEMBLE VIDE([MesRecettes];"SélectionTrouvée") TOUT SELECTIONNER([MesRecettes]) `On parcourt toute la sélection de la table MonHorsEcran:=WR Hors ecran Tant que (Non(Fin de selection([MesRecettes]))) WR IMAGE VERS ZONE (MonHorsEcran;[MesRecettes]ImageRecette_) Si (WR Chercher (MonHorsEcran;AChercher;1;1;1)=1) `Lorsque l'ingrédient est trouvé, l'enregistrement est ajouté dans l'ensemble ADJOINDRE ELEMENT([MesRecettes];"SélectionTrouvée") Fin de si ENREGISTREMENT SUIVANT([MesRecettes]) Fin tant que WR DETRUIRE HORS ECRAN (MonHorsEcran) UTILISER ENSEMBLE("SélectionTrouvée") FORMULAIRE SORTIE([MesRecettes];"Sortie") MODIFIER SELECTION([MesRecettes];*)
Référence