Página 1 de 1
HBSix
Enviado: 05 Set 2007 11:15
por Hasse
Bom dia colegas.
Na pasta xHarbour\lib encontra-se a HBSIX.LIB.
Porém, compilando acusa erro por falta da Função HB_FUN_SX_WILDMATCH, que é a Função que eu uso.
Pesquisando no Help XML do xHarbour nada encontrei.
O quê está faltando ?
A sintaxe é diferente ?
Alguém pode me ajudar ?
Enviado: 05 Set 2007 11:23
por sygecom
Hase, Bom dia
Dei uma olhada aqui no Help e achei a seguinte Sintase:
WildMatch( <cPattern>, <cString>, [<lFullMatch>] )
Código: Selecionar todos
PROCEDURE Main
LOCAL cStr := "The xHarbour compiler"
? WildMatch( "bo?" , cStr, .F. ) // result: .F.
? WildMatch( "bo?" , cStr, .T. ) // result: .F.
? WildMatch( "*bo" , cStr, .F. ) // result: .T.
? WildMatch( "*bo" , cStr, .T. ) // result: .F.
? WildMatch( "The" , cStr, .F. ) // result: .T.
? WildMatch( "The" , cStr, .T. ) // result: .F.
? WildMatch( "The*r", cStr, .F. ) // result: .T.
? WildMatch( "The*r", cStr, .T. ) // result: .T.
? WildMatch( "The?x", cStr, .F. ) // result: .T.
? WildMatch( "The?x", cStr, .T. ) // result: .F.
USE Customer
SET FILTER TO WildMatch( "W*s", FIELD->LastName )
GO TOP
DbEval( {|| QOut( FIELD->LastName ) } )
// Output: Names starting with "W" and ending with "s"
// Walters
// Waters
CLOSE Customer
RETURN
Abraços
Leonardo Machado
Enviado: 05 Set 2007 12:03
por Hasse
Valeu Leonardo.
Funcionou. A sintaxe é diferente do SIX do Clipper.
Obrigado.
Enviado: 05 Set 2007 21:06
por carlos_dornelas
Só curiosidade: para que serve esse WildMatch??
Antonio Carlos
Enviado: 05 Set 2007 22:31
por Hasse
Para filtrar dados de um Banco de Dados, como no exemplo acima.
SET FILTER TO WildMatch("Hasse",CAMPO) deixa passar somente campos que iniciem com "Hasse";
SET FILTER TO WildMatch("*Hasse",CAMPO) deixa passar somente campos que possuam a palavra "Hasse" em qualquer posição;
SET FILTER TO WildMatch("???Hasse",CAMPO) deixa passar somente campos que contenham 3 caracteres quaisquer seguidos da palvra "Hasse".
A criatividade é o limite...
Enviado: 06 Set 2007 10:17
por gera som djs
só por curiosidade pra que serve esse hbsix?
Enviado: 06 Set 2007 11:50
por sygecom
Tem diversas funções que era usada na SIX do clipper...como encriptação e descripitação de dados, busca incrementada ...e etc...de uma olhada na Fonte dela na CVS que vc tera a lista completa !!!
Enviado: 06 Set 2007 13:17
por Hasse
sygecom escreveu:Tem diversas funções que era usada na SIX do clipper...como encriptação e descripitação de dados, busca incrementada ...e etc...de uma olhada na Fonte dela na CVS que vc tera a lista completa !!!
Virei todas as Pastas do xHarbour do avêsso e nada encontrei de fontes do SIX
Onde se encontram ?
Lembrando que baixei o último xHarbour do teu Site.
Enviado: 06 Set 2007 13:22
por Maligno
Baixe o help que tem no meu site:
http://pub.buzinello.com/index.php?d=./ ... tutorials/
Nele constam, acredito eu, os auxílios de todas essas funções. E muito mais.

Enviado: 06 Set 2007 13:39
por sygecom
Hasse, vc pode baixar o xharbour pelo TortoiseCVS e dar uma olhada na pasta \xharbour\source\rdd\hbsix onde tem tres arquivos em .C contendo as funções da HBSIX.
Abraços
Leonardo Machado
Enviado: 06 Set 2007 17:01
por Hasse
Valeu amigos, Sygecom e Maligno.
Obrigado.
Enviado: 07 Set 2007 21:24
por Hasse
Boa noite colegas.
Fiz os testes com o WildMatch, e ele não possui AINDA os recursos do equivalente do SIX. Vejam:
Código: Selecionar todos
Para:
c_filtro := "HASSE"
c_campo := "NOME"
SET FILTER TO WildMatch(c_filtro,NOME) && OK - FUNCIONA
SET FILTER TO WildMatch(c_filtro,c_campo) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,c_campo,.t.) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,c_campo,.f.) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,&c_campo) && ERRO DE RUNTIME
SET FILTER TO WildMatch(c_filtro,"&c_campo") && Não deixa passar
SET FILTER TO WildMatch(c_filtro,"&c_campo",.t.) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,"&c_campo",.f.) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,(c_campo)) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,(c_campo),.t.) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,(c_campo),.f.) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,(&c_campo)) && ERRO DE RUNTIME
SET FILTER TO WildMatch(c_filtro,("&c_campo")) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,("&c_campo"),.t.) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,("&c_campo"),.f.) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,FIELD->&c_campo) && ERRO DE RUNTIME
SET FILTER TO WildMatch(c_filtro,FIELD->"&c_campo") && ERRO DE COMPILAÇÃO
Para:
c_filtro := "HASSE"
c_campo := "FIELD->NOME"
SET FILTER TO WildMatch(c_filtro,FIELD->NOME) && OK - FUNCIONA
SET FILTER TO WildMatch(c_filtro,&c_campo) && ERRO DE RUNTIME
SET FILTER TO WildMatch(c_filtro,"&c_campo") && Não deixa passar
SET FILTER TO WildMatch(c_filtro,"&c_campo",.t.) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,"&c_campo",.f.) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,c_campo) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,c_campo,.t.) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,c_campo,.f.) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,(c_campo)) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,(c_campo),.t.) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,(c_campo),.f.) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,(&c_campo)) && ERRO DE RUNTIME
SET FILTER TO WildMatch(c_filtro,("&c_campo")) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,("&c_campo"),.t.) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,("&c_campo"),.f.) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,"(c_campo)") && Não deixa passar
SET FILTER TO WildMatch(c_filtro,"(c_campo)",.t.) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,"(c_campo)",.f.) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,"(&c_campo)") && Não deixa passar
SET FILTER TO WildMatch(c_filtro,"(&c_campo)",.t.) && Não deixa passar
SET FILTER TO WildMatch(c_filtro,"(&c_campo)",.f.) && Não deixa passar
Ou seja:
O WildMatch do xHarbour necessita declarar especicamente o nome do CAMPO. Não aceita declaração por variável como o SIX aceita.
É possível que não estou acertando a sintaxe, mas pelos testes acima que fiz, não tive êxito.
A observação "Não deixa passar" quer dizer que o SET FILTER recusou todos os registros, mesmo aqueles que atendem aos requisitos de filtragem.
Alguém tem alguma sugestão ou informação ?
Enviado: 10 Set 2007 18:49
por sygecom
Hasse, o xharbour ainda não é totalmente compativel com a SIX...me parece que em 100% só a versão comercial.
Abraços
Leonardo Machado
Enviado: 11 Set 2007 12:50
por Hasse
Obrigado, Leonardo.