4D Write v16WR Direct find |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D Write v16
WR Direct find
|
WR Direct find ( BLOB ; aBuscar ; palavraComp ; maius ) -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
BLOB | BLOB |
![]() |
BLOB que contém uma área 4D Write | |||||
aBuscar | Alpha |
![]() |
Cadeia a buscar | |||||
palavraComp | Inteiro |
![]() |
0=parte da palavra 1=toda a palavra | |||||
maius | Inteiro |
![]() |
0=ignorar maiúsculas 1=ter em conta maiúsculas | |||||
Resultado | Inteiro longo |
![]() |
Estado da pesquisa | |||||
O comando WR Direct find permite procurar diretamente uma cadeia de caracteres em um BLOB que contém uma área 4D Write sem necessitar abrir a área, aumentando a velocidade.
Se a cadeia de caracteres é encontrada, WR Direct find devolve a posição da cadeia de caracteres no texto.
Se a pesquisa não teve sucesso, a função devolve -1.
Se blob não representa o conteúdo de uma área 4D Write, WR Direct find devolve -2.
Os argumentos palavraComp e maius permitem escolher algumas opções para a pesquisa.
No parâmetro palabraComp, pode passar uma das seguintes constantes, que se encontram no tema :
Constante | Tipo | Valor |
wr partial match | Inteiro longo | 0 |
wr whole word | Inteiro longo | 1 |
Constante | Tipo | Valor |
wr ignore uppercase | Inteiro longo | 0 |
wr case sensitive | Inteiro longo | 1 |
Este exemplo oferece um método de pesquisa por palavra chave que procura em uma seleção de registros. Sua base contém receitas de cozinha. As áreas 4D Write se guardam em campos BLOB. Você quer encontrar as receitas que utilizam um ingrediente específico. Este é o método correspondente, o qual é muito rápido:
ToFind:=Request("Introduzir o ingrediente a buscar:")
`Criação de um conjunto vazio no qual se localizam os registros encontrados
CREATE EMPTY SET([MinhasReceitas];"RegistrosEncontrados")
ALL RECORDS([MinhasReceitas]) `Navegar toda a seleção da tabela
While(Not(End selection([MinhasReceitas])))
If(WR Direct find([MinhasReceitas]BlobRecipe_;ToFind;wr whole word;wr case sensitive)>0)
`Se encontrado o ingrediente, o registro é adicionado ao conjunto
ADD TO SET([MinhasReceitas];"RegistrosEncontrados")
End if
NEXT RECORD([MinhasReceitas])
End while
USE SET("RegistrosEncontrados")
OUTPUT FORM([MinhasReceitas];"Saída")
MODIFY SELECTION([MinhasReceitas];*)
Produto: 4D Write
Tema: WR Gestão de texto
Número
89494
Criado por: 4D Write 6.5
4D Write - Linguagem ( 4D Write v16)