Página 1 de 1
Busca palavra em Vetor em qualquer posição
Enviado: 21 Jan 2021 12:24
por asimoes
Pessoal,
Existe alguma função do harbour que possa localizar uma palavra no vetor em qualquer posição
Por exemplo
Código: Selecionar todos
aVetor := {}
aAdd( aVetor, {"ALEXANDRE SIMOES"} )
aAdd( aVetor, {"MARIA DA SILVA"} )
Quero achar nesse vetor a palavra DA SILVA ou SILVA como se fosse um LIKE de um SQL
Busca palavra em Vetor em qualquer posição
Enviado: 21 Jan 2021 14:43
por susviela@bol.com.br
Que eu lembre não, vais ter que fazer a tua função:
Código: Selecionar todos
cBusca := "SILVA"
for i = 1 len(aVetor)
if cBusca $ aVector[i]
? aVector[i]
Endif
Next
Busca palavra em Vetor em qualquer posição
Enviado: 21 Jan 2021 15:03
por marcosgambeta
aEval não serviria ?
Código: Selecionar todos
aResultado := {}
cBusca := " DA SILVA"
aEval( aVetor, { | xValue, nIndex | IIf( cBusca $ xValue, aadd( aResultado, xValue ), NIL ) } )
FOR n := 1 TO Len( aResultado )
? aResultado[ n ]
NEXT n
https://www.itlnet.net/programming/prog ... g9170.html
Busca palavra em Vetor em qualquer posição
Enviado: 21 Jan 2021 15:05
por marcosgambeta
Um detalhe: o segundo parâmetro do codeblock pode ser omitido.
Código: Selecionar todos
aEval( aVetor, { | xValue | IIf( cBusca $ xValue, aadd( aResultado, xValue ), NIL ) } )
Busca palavra em Vetor em qualquer posição
Enviado: 21 Jan 2021 15:10
por asimoes
Valeu gente,
Vou testar
Busca palavra em Vetor em qualquer posição
Enviado: 21 Jan 2021 15:23
por asimoes
Funcionou!
Fiz um filtro para usar no objeto BROWSE da hwgui, primeiro faço um filtro no SQL usando LIKE e depois faço outro filtro em cima do vetor no BROWSE, porque o usuário sabe que o nome que el quer pesquisar é ALEXANDRE, a consulta do banco vai trazer todos os nomes que contém o nome ALEXANDRE mais ele pode digitar por exemplo SILVA que vai fazer outra filtro no vetor,
Já funcionou
Busca palavra em Vetor em qualquer posição
Enviado: 21 Jan 2021 16:59
por JoséQuintas
Não tem como... lembrei do ADO.
Código: Selecionar todos
Temp := cnSQL:Execute( "SELECT * FROM CADASTRO WHERE NOME LIKE '%ALEXANDRE%'" )
Temp:Filter = "NOME LIKE '%SILVA%'"
E HWGUi aceita ADO no browse.
Busca palavra em Vetor em qualquer posição
Enviado: 21 Jan 2021 17:57
por alxsts
Olá!
Em lugar do $, pode também usar as funções At() ou RAt(), conforme a necessidade.
Busca palavra em Vetor em qualquer posição
Enviado: 22 Jan 2021 05:34
por asimoes
A ideia era pra fazer um sub-filtro, ficou assim
Na barra de status o usuário digita o nome ou parte do nome que quer localizar, depois da consulta ao banco que já populou a grid