Pessoal
nao sou muito familiarizado com o clipper. mas preciso de um programinha simples.... Se alguem ja tiver um pronto e puder me enviar
Basicamente o programa deve ficar em um loop
O loop fica monitorando um catraca eletronica (eu ja sei como comunicar com a catraca)
Em determinado momento ele lê um codigo de barra da catraca e qdo isso acontece o programa deve gravar o codigo de barra em uma tabela que contem apenas um campo chamado (CodBarra)
Qdo gravar o codigo de barra deve entrar em outro loop e ficar monitorando outra tabela(q vai estar vazia) qdo ela estiver com mais de um registro deve-se sair do segundo loop e voltar ao loop inicial e continuar o processo
Seria facil em Delphi q ja estou acostumdo... mas se alguem puder me ajudar
Preciso de alguma coisa detalhada pois ja bati muito a cabeça e nao entendi quase nada de outros codigos q peguei
Deste agradeco
Ajuda com Loop e tabelas
Moderador: Moderadores
-
colerapunk
- Usuário Nível 1

- Mensagens: 1
- Registrado em: 12 Abr 2005 16:21
Prezado Colega
Se entendi bem o que você quer.
Seria algo assim :
Espero que possa compreender a lógica, o que você quer fazer é bem simples.
Óbviamente que neste código ainda faltam alguns controles, mas estes você basta ir incorporando.
Até logo.
Marcelo
Se entendi bem o que você quer.
Seria algo assim :
Código: Selecionar todos
sele 2
use tabela2 alias tab2
sele 1
use tabela1 alias tab1
do while .t. // Aqui entra num loop principal que controlará tudo
cbarra=space(6) // Não sei qual o tamanho que você usa
leitura=.f. // Variável de controle de leitura
// Loop 1
do while leitura=.f.
inkey(.2) // Dá um Timeout de 2 décimos de segungo
cbarra=monitora() // aqui entra a função que monitora a catraca
// quando ela fizer alguma leitura retornará o códgi de barras
if cbarra<>space(6)
exit // Se conseguiu receber alguma leitura então passa pro 2º loop
endif
enddo
sele tab1 // Seleciona a tabela 1
dbappend() // Adiciona um registro a tabela
replace codbarra with cbarra // Adciona o código de barra ao arquivo
// Loop 2
sele tab2 // Seleciona a tabela 2 (aquela que estará vazia)
achareg=0 // Controlador de loop
do while achareg=0 // Fica no loop até que não tenha nada no arquivo
inkey(.2) // Aguarda 2 décimos de segundo entre checagens
achareg=lastrec() // Pega o total de registros no arquivo
enddo // Fim do segundo loop
zap // Para limpar para que na próxima o arquivo esteja vazio
enndo // Fim do Loop principal que controla tudo
Abaixo segue o código sem comentários para facilitar sua compreensão.
do while .t.
cbarra=space(6)
leitura=.f. // Variável de controle de leitura
do while leitura=.f.
inkey(.2)
cbarra=monitora()
if cbarra<>space(6)
exit //
endif
enddo
sele tab1
dbappend()
replace codbarra with cbarra
sele tab2
achareg=0
do while achareg=0
inkey(.2)
achareg=lastrec()
enddo
zap
enndo
Óbviamente que neste código ainda faltam alguns controles, mas estes você basta ir incorporando.
Até logo.
Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
