Página 2 de 2
Expressão Regular no SET FILTER
Enviado: 27 Set 2018 11:47
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:
Acho que não aconteceria nada dentro desse FOR.
Expressão Regular no SET FILTER
Enviado: 27 Set 2018 11:56
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
Expressão Regular no SET FILTER
Enviado: 27 Set 2018 12:00
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
Expressão Regular no SET FILTER
Enviado: 27 Set 2018 12:21
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.
Expressão Regular no SET FILTER
Enviado: 27 Set 2018 12:33
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
Expressão Regular no SET FILTER
Enviado: 27 Set 2018 12:39
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.