version 6.5
WR Chercher direct (blob; aChercher; motEntier; majuscules) Entier long
Paramètre | Type | Description | |
blob | BLOB | Blob | |
aChercher | Alpha | Chaîne à rechercher | |
motEntier | Entier | 0=partie de mot | |
1=mot entier | |||
majuscules | Entier | 0=ignorer majuscules | |
1=tient compte des majuscules | |||
Résultat | Entier long | Etat de la recherche |
Description
La commande WR Chercher direct permet de rechercher une chaîne de caractères directement dans un BLOB contenant une zone 4D Write sans avoir besoin d'ouvrir la zone, d'où un gain en rapidité.
Si l'expression est trouvée, la fonction retourne la position de la chaine recherchée dans le texte.
Si la recherche a été infructueuse, la fonction retourne -1.
Si blob ne contient pas un document 4D Write, la fonction retourne -2.
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".
Exemple
Cet exemple propose une méthode de recherche par mot-clé sur une sélection d'enregistrements, dans des zones 4D Write associées à des champs BLOB.
Note : Si vous avez opté pour l'association des zones 4D Write à des champs Images, vous pouvez également vous reporter à l'exemple présenté dans la description de la fonction WR Chercher.
Vous possédez une base contenant des recettes de cuisines. Celles-ci ont été enregistrées dans des champs BLOB grâce à 4D Write 6.5. Vous désirez pouvoir extraire toutes les recettes contenant un ingrédient particulier. Voici l'exemple vous permettant d'obtenir très rapidement 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 Tant que (Non(Fin de selection([MesRecettes]))) Si (WR Chercher direct ([MesRecettes]BlobRecette_;AChercher;1;1)>0) `Lorsque l'ingrédient a été trouvé, l'enregistrement est ajouté à l'ensemble ADJOINDRE ELEMENT([MesRecettes];"SélectionTrouvée") Fin de si ENREGISTREMENT SUIVANT([MesRecettes]) Fin tant que UTILISER ENSEMBLE("SélectionTrouvée") FORMULAIRE SORTIE([MesRecettes];"Sortie") MODIFIER SELECTION([MesRecettes];*)
Référence