4D Write v16WR Direct find |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D Write v16
WR Direct find
|
WR Direct find ( BLOB ; aBuscar ; palabraComp ; mayus ) -> Resultado | ||||||||
Parámetro | Tipo | Descripción | ||||||
BLOB | BLOB |
![]() |
BLOB que contiene un área 4D Write | |||||
aBuscar | Alpha |
![]() |
Cadena a buscar | |||||
palabraComp | Entero |
![]() |
0=parte de la palabra 1=toda la palabra | |||||
mayus | Entero |
![]() |
0=ignorar mayúsculas 1=tener en cuenta mayúsculas | |||||
Resultado | Entero largo |
![]() |
Estado de la búsqueda | |||||
El comando WR Direct find permite buscar directamente una cadena de caracteres en un BLOB que contiene un área 4D Write sin necesitar abrir el área, aumentando la velocidad.
Si se encuentra la cadena de caracteres, WR Direct find devuelve la posición de la cadena de caracteres en el texto.
Si la búsqueda no tuvo éxito, la función devuelve -1.
Si blob no representa el contenido de un área 4D Write, WR Direct find devuelve -2.
Los argumentos palabraComp y mayus permiten elegir algunas opciones para la búsqueda.
En el parámetro palabraComp, puede pasar una de las siguientes constantes, que se encuentran en el tema WR Parámetros:
Constante | Tipo | Valor |
wr partial match | Entero largo | 0 |
wr whole word | Entero largo | 1 |
En el parámetro mayus, puede pasar una de las siguientes constantes, que se encuentran en el tema WR Parámetros:
Constante | Tipo | Valor |
wr ignore uppercase | Entero largo | 0 |
wr case sensitive | Entero largo | 1 |
Este ejemplo ofrece un método de búsqueda por palabra clave que busca en una selección de registros. Su base contiene recetas de cocina. Las áreas 4D Write se guardan en campos BLOB. Usted quiere encontrar las recetas que utilizan un ingrediente específico. Este es el método correspondiente, el cual es muy rápido:
ToFind:=Request("Introduzca el ingrediente a buscar:")
`Creación de un conjunto vacío en el cual se ubican los registros encontrados
CREATE EMPTY SET([MiRecetas];"RegistrosEncontrados")
ALL RECORDS([MisRecetas]) `Navegar toda la selección de la tabla
While(Not(End selection([MisRecetas])))
If(WR Direct find([MisRecetas]BlobRecipe_;ToFind;wr whole word;wr case sensitive)>0)
`Si se encuentra el ingrediente, el registro se añade al conjunto
ADD TO SET([MisRecetas];"RegistrosEncontrados")
End if
NEXT RECORD([MisRecetas])
End while
USE SET("RegistrosEncontrados")
OUTPUT FORM([MisRecetas];"Salida")
MODIFY SELECTION([MisRecetas];*)
Producto: 4D Write
Tema: WR Gestión de texto
Número
89494
Creado por: 4D Write 6.5
4D Write - Lenguaje ( 4D Write v16)