HBSix

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

Moderador: Moderadores

Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

HBSix

Mensagem 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 ?
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem 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
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Mensagem por Hasse »

Valeu Leonardo.

Funcionou. A sintaxe é diferente do SIX do Clipper.

Obrigado.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
carlos_dornelas
Usuário Nível 3
Usuário Nível 3
Mensagens: 400
Registrado em: 25 Ago 2004 21:54

Mensagem por carlos_dornelas »

Só curiosidade: para que serve esse WildMatch??

Antonio Carlos
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Mensagem 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...
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
gera som djs
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 10 Ago 2007 15:07
Localização: porto alegre

Mensagem por gera som djs »

só por curiosidade pra que serve esse hbsix?
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem 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 !!!
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Mensagem 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.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem 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
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Mensagem por Hasse »

Valeu amigos, Sygecom e Maligno.

Obrigado.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Mensagem 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 ?
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem 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
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Mensagem por Hasse »

Obrigado, Leonardo.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Responder