Alternativa ao OrdWildSeek

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

frazato
Usuário Nível 3
Usuário Nível 3
Mensagens: 219
Registrado em: 08 Jul 2004 07:45

Alternativa ao OrdWildSeek

Mensagem por frazato »

Fiz está rotina para usar no lugar da OrdWildSeek que uso em todo o sistema mais não estava conseguindo usar ela para criar um indice temporario com esta situação e também usando o "$" não resolvia, e como ao meu ver ficou legal resolvi compartilhar.

Frazato

Código: Selecionar todos

**
* Desenvolvido por João Frazato
* 20/11/2012
*
*

Function Main()
Teste()
Return nil


Function teste()
Close all
  mProc      :='NESTLE*SADIA*SUKITA'
  lCondicaoE := .T.

  use c:\frazato\produto
  Index on Descricao to c:\temp\Rec10 ;
                            For (Jaf_OrdWildSeek(mProc,.T.))
                            
   Dbedit(00,0,24,79)
cLose all
return nil
 
//-----------------------------------------------------------------
Function JAF_OrdWildSeek(_mProc,lCondicaoE)
Local mProc := _mProc , x:= 0,nQtdTesteOk := 0
Local wOpcoes := {} , c := ''
Local lCondicaoE := _lCondicaoE
For i:= 1 to Len(mProc)
    If Substr(mProc,i,1)=='*'
       Aadd(wOpcoes,c)
       c:=''
    Else
        c+= Substr(mProc,i,1)
    Endif
Next
Aadd(wOpcoes,c)

For x:= 1 to Len(wOpcoes)
        mProc := wOpcoes[x]
        If Substr(Descricao,At(mProc,Descricao),Len(mProc))==mProc
           nQtdTesteOk++
           If lCondicaoE==.t.
              Return .t.
           Endif
        endif
Next
Return Iif(nQtdTesteOk>=Len(wOpcoes),.t.,.f.)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Alternativa ao OrdWildSeek

Mensagem por JoséQuintas »

Legal, uso algo parecido nas minhas pesquisas.
Não sei se fica mais rápido:

Trocar isto:
Substr(Descricao,At(mProc,Descricao),Len(mProc))==mProc

Por isto:
mProc $ Descricao
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder