Moderador: Moderadores
@ECHO OFFObserve que coloquei o programa no raiz e depois disso executaríamos outro arquivo BAT que o ACERTA.PRG irá criar.
C:\ACERTA.EXE
CALL ATUALIZA.BAT
/*Neste exemplo o utilitário verifica que a data digitada não seja mais antiga que a ultima registrada. Mesmo assim pergunta se quer confirmar ou digitar outra. Também verifica que a hora esteja completa e seja verdadeira. Espero que tenha contribuido para o seu aprendizado.
Nome do programa.........: ACERTA.PRG
Desenvolvido por.........: Pablo César Arrascaeta
Objetivo do programa.....: Acerta data e hora do Sistema Operacional
Ferramenta de programa‡Æo: Clipper versÆo 5.2e + CT.LIB
*/
SET DATE TO BRITISH
SET CENTURY ON
If !File("LASTIME.MEM")
OS_DATA := Date()
OS_HORA := Substr(Time(),1,5)
Save to LASTIME all like OS_*
Endif
Restore from LASTIME Additive
dData := OS_DATA
cHora := OS_HORA
Do While .T.
Clear Screen
@ 12,10 SAY "Informe a data atual:" GET dData Valid VerData(dData,OS_DATA)
@ 13,10 SAY "Informe a hora atual:" GET cHora Picture "99:99" Valid VerHora(cHora,OS_HORA)
Read
If !Lastkey()=27
Exit
Endif
Enddo
OS_DATA := dData
OS_HORA := cHora
Save to LASTIME all like OS_*
Memowrit("C:\ATUALIZA.BAT","DATE "+DtoC(dData)+Chr(13)+Chr(10)+"TIME "+cHora)
Function VerData(dDt,dDo)
If Empty(dDt)
Alert("Nao pode deixar sem data !")
Return .F.
Endif
If dDt<dDo
If Alert("A data digitada nao pode ser mais antiga;que a ultima registrada !;;Confirma a data ou deseja digitar outra ?;;",{"Digitar outra","Confirma data"})=2
lRet := .T.
Else
lRet := .F.
Endif
Else
lRet := .T.
Endif
Return lRet
Function VerHora(cHr)
If !Len(Alltrim(cHr)) = 5
Alert("A hora nao foi completamente digitada !")
Return .F.
Else
If !TIMEVALID(cHr)
Alert("Precisa colocar a hora certa !")
Return .F.
Endif
/* Poderia também verificar se é o mesmo dia e checar que a hora digitada não seja mais cedo que a que foi grava */
Endif
Return .T.
Não aconselho que o programa ACERTA restaure automaticamente a data e hora após o primeiro acerto de DATA/HORA pelo programa. Pois você poderá ligar o computador no segundo dia ou não necessariamente no mesmo dia, ocorrendo um acerto de data/hora errada. Pode como eu fiz, trazer a ultima data gravada e até mesmo verificar que a hora digitada não seja mais cedo que a grava (isso se for no mesmo dia).Este programa guardaria a ultima data e hora digitadas numa variável para que fosse restauradas na próxima inicialização do sistema.
Clipper 5.0 ? Essa versão tem BUG !! Aconselho ao colega atualizar o seu Clipper para a versão 5.2.e, aqui no fórum temos ele a disposição na seção de Downloads (clique aqui).fico no aguardo de suas respostas. ( Clipper 5.0 ) S.F.Medeiros-Maricá-RJ.
Usuários vendo este fórum: Nenhum usuário registrado online e 6 visitantes