Função ORDWILDSEEK()
Enviado: 21 Dez 2007 17:07
Esta vai pro meu amigo Leonardo Sygecom, o meu padrinho no XHarbour...
Bão, capaz de alguém já ter postado algo a respeito dessa função ORDWILDSEEK(), nem conferi. Mas, se já, que me perdoem. É que a coisa é boa, mesmo!
Dados: arquivo PRODUTOS.DBF com 15.664 registros, 21 campos, tamanho total de cada registro = 285, indexado via CDX, 7 tags, blablabla, rodando xHarbour console num AMD Athlon 1.5Ghz, 512 de RAM... Mandei procurar pelo substring "PESSEGO"...Resultado: em menos de 1 segundo, o achoice() com 138 ocorrências explodiu na tela...
Caraca! Como não migrei pro XHarbour antes????
Bão, capaz de alguém já ter postado algo a respeito dessa função ORDWILDSEEK(), nem conferi. Mas, se já, que me perdoem. É que a coisa é boa, mesmo!
Dados: arquivo PRODUTOS.DBF com 15.664 registros, 21 campos, tamanho total de cada registro = 285, indexado via CDX, 7 tags, blablabla, rodando xHarbour console num AMD Athlon 1.5Ghz, 512 de RAM... Mandei procurar pelo substring "PESSEGO"...Resultado: em menos de 1 segundo, o achoice() com 138 ocorrências explodiu na tela...
Caraca! Como não migrei pro XHarbour antes????
Código: Selecionar todos
use produtos
set index to produtos
set orde to 1 // NOME do produto, caracter, tamanho 60
go top
priv lista:={}
?time() //-> início: 16:45:39
do while ordwildseek("*PESSEGO*",.t.)
* procura produtos que contenham "PESSEGO" no nome, em qq posição,
* do começo pro fim do arquivo = o argumento .T.
* e adiciona esses nomes à matriz LISTA
aadd(lista,field->nnome)
endd
?time() //-> final: 16:45:39 PO, NUM DEU TEMPO DE MUDAR O RELÓGIO!...
wait len(lista) // -> 138
achoice(05,11,22,70,lista,.t.,,)
quit