Clipper On Line • Ver Tópico - duvida com OrdWildSeek

duvida com OrdWildSeek

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

Moderador: Moderadores

 

duvida com OrdWildSeek

Mensagempor dbdc5554 » 22 Ago 2017 10:32

crie um arq temporario grave os fernado e depois os at( fernado (sem ser os começando na 1 coluna

no prg de vendas localizo os produtos por uma ou varias partes do nome e gravo um tep e depois exibo em browser

base de 10.00 fica instantanea 1 segundo por ai
95.xxx acabei de testar uns 4 segundos

PAiva
dbdc5554
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 149
Data de registro: 03 Dez 2012 07:49
Cidade/Estado: uberlandia-MG
Curtiu: 0 vez
Mens.Curtidas: 1 vez

duvida com OrdWildSeek

Mensagempor fladimir » 22 Ago 2017 11:13

eu nao... parei nao vi novamente

alguem conseguiu::>
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

duvida com OrdWildSeek

Mensagempor asimoes » 09 Fev 2018 08:33

Voltando ao assunto fiquei brincando com OrdWildSeek, rs
  lSeguinte := .F.
  NOMES->( DbGoTop() ) //Tem que colocar o Go Top pra funcionar o OrdWildSeek
   
   DO WHILE NOMES->( OrdWildSeek( "*FERNAND*", lSeguinte ) )
      aAdd( aNomesAux, { NOMES->Nome, IF( Left( NOMES->Nome, 1) = "F", 0, 1 ) } )
      lSeguinte := .T.
   ENDDO
   
   aSort( aNomesAux ,,, {|x,y| y[2] > x[2]} )
   
   aNomes := {}
   
   FOR EACH oElemento IN aNomesAux
      aAdd( aNomes, oElemento[1] )
   NEXT
   
   aChoice(0,0,24,79, aNomes )


Fladimir,

Resulta:
2018-02-09 09_34_41-CDBF - DBF Viewer&Editor.png
2018-02-09 09_34_41-CDBF - DBF Viewer&Editor.png (6.46 KiB) Visualizado 674 vezes
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

duvida com OrdWildSeek

Mensagempor asimoes » 09 Fev 2018 08:40

Uma melhorada:
   lSeguinte := .F.
   
   aNomesAux    := {}
   
   NOMES->( DbGoTop() ) //Tem que colocar o Go Top pra funcionar o OrdWildSeek
   
   cPesquisa := "FERNAND"
   
   DO WHILE NOMES->( OrdWildSeek( "*" + cPesquisa + "*", lSeguinte ) )
      aAdd( aNomesAux, { NOMES->Nome, IF( Left( NOMES->Nome, 1) = Left( cPesquisa, 1 ), 0, 1 ) } )
      lSeguinte := .T.
   ENDDO
   
   aSort( aNomesAux ,,, {|x,y| y[2] > x[2]} )
   
   aNomes := {}
   
   FOR EACH oElemento IN aNomesAux
      aAdd( aNomes, oElemento[1] )
   NEXT
   
   aChoice(0,0,24,79, aNomes )
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

duvida com OrdWildSeek

Mensagempor asimoes » 09 Fev 2018 08:58

   cPesquisa := "FERNAND"
   
   DO WHILE NOMES->( OrdWildSeek( "*" + cPesquisa + "*", lSeguinte ) )
      aAdd( aNomesAux, { NOMES->Nome, IF( SubStr( NOMES->Nome, RAT( " ", cPesquisa ) + 1 ) = cPesquisa, 0, 1 ) } )
      lSeguinte := .T.
   ENDDO


Dessa forma a principio não precisa criar nenhum temporário o próprio vetor com asort resolve
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

duvida com OrdWildSeek

Mensagempor asimoes » 09 Fev 2018 15:59

Outra modificação usando aEval
   lSeguinte := .F.
   
   aNomesAux    := {}
   
   NOMES->( DbGoTop() ) //Tem que colocar o Go Top pra funcionar o OrdWildSeek
   
   cPesquisa := "FERNAND"
   
   DO WHILE NOMES->( OrdWildSeek( "*" + cPesquisa + "*", lSeguinte ) )
      aAdd( aNomesAux, { NOMES->Nome, IF( SubStr( NOMES->Nome, RAT( " ", cPesquisa ) + 1 ) = cPesquisa, 0, 1 ) } )
      lSeguinte := .T.
   ENDDO
   
   aSort( aNomesAux ,,, {|x,y| y[2] > x[2]} )
   
   aNomes := {}
   
   aEval( aNomesAux, {|x,y| aAdd( aNomes, x[1] ) } )

   aChoice( 0, 0, 24, 79, aNomes )
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

duvida com OrdWildSeek

Mensagempor fladimir » 09 Fev 2018 17:25

Opa... q legal vou testar... Obrigado
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Anterior



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot] e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro