Expressão Regular no SET FILTER

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

Moderador: Moderadores

Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Expressão Regular no SET FILTER

Mensagem por clodoaldomonteiro »

Quintas,

o ASorte tem que ser feito/verificado antes do segundo FOR, pois pode ser que o usuário passe o seguinte intervalo:
[020-010,040-050],
Daí sem o ASorte no lugar correto, no segundo FOR teríamos:

Código: Selecionar todos

For ii=20 to 10
   ...
Next
Acho que não aconteceria nada dentro desse FOR.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Expressão Regular no SET FILTER

Mensagem por JoséQuintas »

Essa checagem teria que ser feita na validação.
Talvez até mesmo depois do ASort(), tanto faz.

Código: Selecionar todos

lOk := .T.
IF Len( oElement ) > 1 .AND. oElement[ 1 ] > oELement[ 2 ]
   lOk := .F.
   MsgExclamation( "Intervalo errado " + Str( oElement[ 1 ] ) + " " + Str( oElement[ 2 ] ) )
ENDIF
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Expressão Regular no SET FILTER

Mensagem por JoséQuintas »

Se for pra apenas inverter:

Código: Selecionar todos

FUNCTION ExtraiDeAte( cTexto, nTamanho )

   LOCAL aIntervalos, aItem, oDeAte, oNumero

   aIntervalos := {}
   FOR EACH oDeAte IN hb_regExSplit( cTexto, "," )
      aItem := {}
      FOR EACH oNumero IN hb_RegExSplit( oDeAte , "-" )
         Aadd( aItem, StrZero( Val( oNumero ), nTamanho )
      NEXT
      aSort( aItem, { | a, b | a < b } )
      AAdd( aIntervalos, aItem )
   NEXT
   ASort( aIntervalos,,, {| a, b | a[ 1 ] < b[ 1 ] } )

   RETURN aIntervalos
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/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Expressão Regular no SET FILTER

Mensagem por Itamar M. Lins Jr. »

Ola!
imprimir alguns determinados registro,
Se for no DBF, com orscope , não precisa achar intervalos.
00010-00030, não precisa achar 00011, 00012... No ordScope está dentro esses registros.
Se for um arquivo(texto) ai não sei(paginas de um relatório), Mas como foi perguntado com SET FILTER ...

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Expressão Regular no SET FILTER

Mensagem por JoséQuintas »

Na prática nem scope, nem filter, nem nada.
No começo ele disse que imprime CADA ficha, sendo assim:

Código: Selecionar todos

FOR EACH oDeAte IN aIntervalos
   SEEK oDeAte[ 1 ] SOFTSEEK
   DO WHILE .T.
      IF Len( oDeAte ) == 1 .AND. arquivo->Código != oDeAte[ 1 ] 
        EXIT
      ENDIF
      IF Len( oDeAte ) == 2 .AND. arquivo->Código > oDeAte[ 2 ]
         EXIT
      ENDIF
      IMprime()
      SKIP
   ENDDO
NEXT
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/
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Expressão Regular no SET FILTER

Mensagem por clodoaldomonteiro »

Boa tarde Itamar,

É que antes eu imaginava ter a possibilidade de fazer isso na hora do SET FILTER, mas no desenrolar, vi que o buraco era mais em baixo.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Responder