WR Chercher

4D - Documentation   Français   English   German   4D Write, Commandes par thèmes   4D Write, Liste alphabétique des commandes   4D Write, Constantes par thèmes   Retour   Précédent   Suivant

version 6.5


WR Chercher (zone; aChercher; motEntier; majuscules; toutLeDoc) Entier long

ParamètreTypeDescription
zoneEntier longZone 4D Write
aChercherAlphaChaîne à chercher
motEntierEntier0=Partie de mot
1=Mot entier
majusculesEntier0=Ignorer majuscules
1=Ne pas ignorer majuscules
toutLeDocEntier0=Chercher du curseur à la fin du document
1=Chercher dans tout le document
RésultatEntier longStatut 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

WR Chercher direct.


4D - Documentation   Français   English   German   4D Write, Commandes par thèmes   4D Write, Liste alphabétique des commandes   4D Write, Constantes par thèmes   Retour   Précédent   Suivant