Página 1 de 1
processar arquivo DBF do final para o começo
Enviado: 28 Jul 2015 09:36
por porter
ola pessoal, estou com uma duvida aqui, como faço para processar um arquivo DBF do final para o começo, quero ir no final do arquivo (GO BOTTOM), e com
SKIP -1 processar ate o começo do arquivo, obrigado
go bottom
do while
skip -1
enddo
xHarbour, windows 7.
processar arquivo DBF do final para o começo
Enviado: 28 Jul 2015 10:02
por Kapiaba
Código: Selecionar todos
GO BOTT
WHILE .NOT. BOF() // BEGIN OF FILE.
IF BOF()
EXIT
ENDIF
// ... Processamento.
SKIP( -1 )
ENDDO
processar arquivo DBF do final para o começo
Enviado: 28 Jul 2015 10:05
por porter
Valeu Kapiaba, obrigado .
processar arquivo DBF do final para o começo
Enviado: 28 Jul 2015 10:32
por Eolo
GO BOTT
WHILE .NOT. BOF() // BEGIN OF FILE.
///// IF BOF() -----> a mais
///// EXIT
///// ENDIF
// ... Processamento.
SKIP( -1 )
ENDDO
Não precisa do IF/ENDIF. Ele está a mais, só está gastando processamento.
O WHILE já está controlando a coisa. Aliás, quando o ponteiro chegar no BOF(), o IF nem vai ficar sabendo...
Do jeito que está, é como fazer:
FOR X=1 to 10
if x=10 // a mais
exit
endi
// processamento
next
processar arquivo DBF do final para o começo
Enviado: 28 Jul 2015 16:05
por JoséQuintas
Só uma observação: SKIP não é função.
Mesmo que o compilador aceite, convém acostumar do modo correto.
Nota: É um exemplo de algo errado que o Clipper aceita. Mas nesse erro o Harbour ficou compatível.
processar arquivo DBF do final para o começo
Enviado: 28 Jul 2015 16:37
por Itamar M. Lins Jr.
Ola!
Permita-me...
O correto é dbskip() FUNÇÃO!
Aqui eu só uso assim:
Olhe a saída do PPO.
SKIP [<nRecords>] [ALIAS <idAlias> | <nWorkArea>]
Nós escrevemos skip e o pré-processador transforma para dbskip()
Saudações,
Itamar M. Lins Jr.
processar arquivo DBF do final para o começo
Enviado: 28 Jul 2015 16:45
por Itamar M. Lins Jr.
No PRG eu escrevi assim:
skip alias xx
skip( -1 )
Aqui o ppo saiu assim:
Saudações,
Itamar M. Lins Jr.
processar arquivo DBF do final para o começo
Enviado: 29 Jul 2015 09:28
por aferra
apresentando mais uma forma
// coloca em ordem decrescente
OrdDescend( ,, .T. )
// inicio do arquivo "ao contrario"
dbGoTop()
// sem se preocupar com mais nada.
dbEval( {|| <suas_instrucoes> } )
// coloca em ordem natrual
OrdDescend( ,, .F. )
processar arquivo DBF do final para o começo
Enviado: 29 Jul 2015 10:22
por JoséQuintas
Itamar, prefiro o jeito tradicional.
Talvez seja bom o jeito tradicional pra algumas coisas, porque se houver mudança o .CH já faria o ajuste.
Mas não me pergunte, não faço a menor idéia se faz diferença em alguma coisa.
No caso do CLEAR por exemplo, acaba sendo substituído por várias funções.
Código: Selecionar todos
Scroll()
SetPos( 0, 0 )
ReadKill( .T. )
GetList := {}
( GetList )
Nem sei o que faz essa última ( GetList )