Página 4 de 6

Servidor NTP para harbour 3.0

Enviado: 07 Fev 2014 02:07
por cjp
Está dando este erro na compilação:

Imagem

Servidor NTP para harbour 3.0

Enviado: 07 Fev 2014 07:41
por fladimir
Adiciona no início do teu PRG

#include "hbcompat.ch"

[]´s

Servidor NTP para harbour 3.0

Enviado: 13 Fev 2014 17:16
por cjp
Incluí, mas ainda está dando este erro:

Imagem

Servidor NTP para harbour 3.0

Enviado: 13 Fev 2014 18:04
por Toledo
cjp, observando a sua mensagem do dia 07/fev notei que você tentou compilar o código que o Rochinha postou neste tópico. Bom, se você observar a primeira linha do código do Rochinha, o código dele é para compilar com a FiveWin, então se o seu programa é modo console, não se pode misturar código FiveWin com código modo console.

E em toda mensagem de erro, é indicado em qual arquivo e em que linha ocorreu o erro, então é interessante verificar o arquivo/linha para ver o que pode estar errado.

Abraços,

Servidor NTP para harbour 3.0

Enviado: 13 Fev 2014 18:11
por cjp
Verdade que eu tentei compilar o código do Rochinha, Toledo.

Mas esta última postagem refere-se ao código do Fladimir, que me mandou incluir o #include...

O problema da linha do erro é que eu não entendo a função dele, pois foi feita em C, e por isso não sei a razão de estar dando erro. Só posso dizer que a linha 25562, a primeira que indica erro, está assim:

Código: Selecionar todos

 <span class="u0vunm125r" id="u0vunm125r_18">Local</span> cRet := "", cPagina := ""

Servidor NTP para harbour 3.0

Enviado: 13 Fev 2014 18:46
por Toledo
cjp, verifique se você copiou corretamente o código do Fladimir.

No código do Fladimir está assim:

Código: Selecionar todos

Local cRet := "", cPagina := ""
E você copiou:

Código: Selecionar todos

<span class="u0vunm125r" id="u0vunm125r_18">Local</span> cRet := "", cPagina := ""
Bom, este código <span class="u0vunm125r" id="u0vunm125r_18"> e </span> são comandos HTML, então tem que ver como foi que você copiou o código do Fladimir, pois estes códigos HTML nem existem aqui no script do fórum.

Abraços,

Servidor NTP para harbour 3.0

Enviado: 13 Fev 2014 20:29
por cjp
De fato, Toledo, acho que houve algum erro na hora de copiar, possivelmente algum vírus no computador do meu trabalho, pois eu copiei usando a opção de cópia do próprio site, não sei porque foi inserido esse código de spam.

Fiz nova cópia agora e não deu mais erro nessa linha.

Mas ainda está dando erro:

Imagem

A linha 25646 está assim:

Código: Selecionar todos

  TRY

Servidor NTP para harbour 3.0

Enviado: 13 Fev 2014 20:49
por Toledo
cjp, conforme orientação do Fladimir, você tem que colocar #include "hbcompat.ch" no início do arquivo onde está o código que você copiou da mensagem dele.

Abraços,

Servidor NTP para harbour 3.0

Enviado: 13 Fev 2014 21:21
por cjp
Eu achei que era para incluir na função main(). Mas agora incluí na pegadthrbrasilia() e compilou.

Deu um erro de execução por falta de definição da variável CRLF. Eu a defini como "" para testar, e funcionou.

Mas a variável cPagina está vazia. Por isso, cMes está retornando NIL. E está dando erro no parâmetro + na seguinte linha:

Código: Selecionar todos

  cData := cDia+"/"+cMes+"/"+cAno
Além disso, cDia está retornando 08, não sei porque (hoje não é dia 8).

Servidor NTP para harbour 3.0

Enviado: 13 Fev 2014 22:16
por fladimir
Posta teu código inteiro pra avaliarmos e ver se conseguimos te ajudar.

[]´s

Servidor NTP para harbour 3.0

Enviado: 13 Fev 2014 22:19
por rochinha
Amiguinhos,

1-O código que postei contém uma série de funções para diversos usos e portanto podem ser recortados e colados no seu .prg para obter algum resultado.
2-O fato de aparecer conteúdo .hmtl no momento da compilação se deve a muita sugeira nos temporários, deve ser feita uma limpeza com CCleaner.
3-A variavel CRLF deve ser definida como #define CRLF chr(13)+chr(10).
4-O erro de aparecer numero 8 na variavel cDia, voce deve colocar no inicio do .prg SET DATE BRIT.
5-O erro de parametro + acontece porque alguma variável da concatenação esta vazia, teste primeiro com:

Código: Selecionar todos

?"cDia",cDia,"cMes",cMes,"cAno",cAno
cData := cDia+"/"+cMes+"/"+cAno

Servidor NTP para harbour 3.0

Enviado: 13 Fev 2014 22:26
por Toledo
cjp escreveu:Deu um erro de execução por falta de definição da variável CRLF. Eu a defini como "" para testar, e funcionou.
cjp, no início do seu PRG incluir:

Código: Selecionar todos

Private CRLF := CHR(13) + CHR(10)
cjp escreveu:Mas a variável cPagina está vazia.
Não pode estar vazia, pois senão não entraria no If cTexto $ cPagina, onde está a linha que você disse que está com erro. Mas acho que basta declarar o CRLF no início do arquivo que já resolve.

Abraços,

Servidor NTP para harbour 3.0

Enviado: 13 Fev 2014 22:58
por cjp
Toledo, defini a CRLF, mas não mudou nada. A cPagina ainda está vazia.

Mas agora eu vi que eu estava testando a cPagina depois de

Código: Selecionar todos

  cPagina := Substr(cPagina,At(CRLF,cPagina)+4)
Quando testo antes, cPagina está assim:

Imagem

Então, acho que realmente o problema é na CRLF.

Mas note que a data está errada, aparentemente seria um erro do próprio site, não? Se bem que, consultando o site diretamente, a data está certa.

Rochinha,

A set date brit já está definida no início do prg.

A variável que está vazia é a cMes.

Servidor NTP para harbour 3.0

Enviado: 13 Fev 2014 23:19
por rochinha
Amiguinho,

Não sei se o Harbour tem, mas em Clipper tinhas umas funções que se passava um data e retornava o nome do mês. O contrário eu não lembro, mas voce deverá montar uma critica que pega o nome do mês e retorna o número dele, tipo:

Código: Selecionar todos

NumeroDoMes := ASCAN( { "janeiro", "fevereiro", ..., "dezembro" }, lower(NomeDoMes) ) 

Servidor NTP para harbour 3.0

Enviado: 14 Fev 2014 02:03
por Nascimento
Boa Noite a Todos!

Amigo Cpj nao precisa vc mandar o cliente atualizar a hora pois tem comandos na biblioteca hbct que faz isso automaticamente
SetDate() e Settime() // se nao me foge a memoria
por isso eu so precisava de uma funçao que pinga-se um dns valido a do rochinha parece muito boa mais nao tive tempo de testar

mais basicamente pra completar a funçao que os amigos toledo ,fladmir, assimoes ,rochinha etc.. fizeram eu precisaria de pingar um dns tipo 8.8.8.8 (dns google)

supondo seria mais ou menos assim

vdns:=" 8.8.8.8 "

if ping(vdns)
execultantp() // executaria a funçao pra pegar a hora via servidor ntp
else
alert(' Verifique a Conexão com A internet ')
endif

Onde a funçao ping pegaria o dns como paramentro e mandaria de retorno .t. ou .f.

esta funçao ping (nome sugerido ) é a que eu precisaria pra resolver todo o problema :%

agradeço a Todos que se empenham a Ajudar e a Manter esse Forum um dos melhores em clipper/harbour