Página 1 de 1
Previsao do tempo
Enviado: 26 Dez 2012 13:29
por Adalberto
Caros amigos e amigas deste foro,
Em este foro, faz tempo, encontre uma função para a previsão do tempo, agora que necessito ler de novo esse tópico, não sei como achar ele, acredito que meu fraco português não alcança para buscar. Se alguém sabe onde posso encontrar esse tema, por favor, me ajude.
Aproveito este tópico para expressar, a cada um de vocês, meus sinceros desejos de prosperidade no novo ano; Deus nasceu como um de nós para redimir-nos, meu desejo e minha oração para que seus nomes sejam registrados no livro dos salvados e desfrutem de vida eterna.
[] Adalberto
Previsao do tempo
Enviado: 26 Dez 2012 20:13
por fladimir
Adalberto eu peguei aki no fórum o código postado abaixo, porém não esta funcionando mais, tipo na época funcionou, agora não funciona mais... eu não tive tempo pra analisar o pq, em todo caso segue o código q foi extraido do fórum, pelo q me lembro talvez tenha algumas leves modificações, mas nada drástico, no geral o código é o mesmo.
[]´s
Código:
Código: Selecionar todos
/********* * * * * *
* PrevisaoDoTempo
*
* Parametro: string com o 'nome da cidade, estado'
*
* Retorno: hash com dados sobre o clima
*
* hash["CidadeBase"] => Cidade localizada com este nome
* hash["CondicaoAtual"] => Condição climatica atual na cidade
* hash["TemperaturaAtual"] => Temperatura atual na cidade
* hash["UmidadeAtual"] => Umidade atual na cidade
* hash["VentoAtual"] => Vento atual na cidade (direcao e velocidade)
* hash["aProximosDias"] => Array com a previsao para os proximos dias
* aProximosDias = { cDiaDaSemana, cTempMax, cTempMin, cCondicao }
*/
#include "hbxml.ch"
//------------------------------------------------------------------------------
FUNCTION PrevisaoDoTempo( cCidade )
LOCAL oHttp, cXML, oXML
LOCAL oCidade, oTemperatura, oUmidade, oVento, oCondicao
LOCAL oPrevisao, oTagAtual, oIterator
LOCAL cDia, cMax, cMin, cCond, i
LOCAL aDias := {}
LOCAL hDiasSemana := HB_Hash()
LOCAL hPrevisaoDoTempo := HB_Hash()
IF !INetEstaConectada()
return
Endif
hDiasSemana["dom"] := "Domingo"
hDiasSemana["seg"] := "Segunda-feira"
hDiasSemana["ter"] := "Terçaa-feira"
hDiasSemana["qua"] := "Quarta-feira"
hDiasSemana["qui"] := "Quinta-feira"
hDiasSemana["sex"] := "Sexta-feira"
hDiasSemana["sáb"] := "Sábado"
cCidade := StrTran( AllTrim( cCidade ), " ", "%20" )
oHttp:= TIpClientHttp():new( "http://www.google.com/ig/api?weather="+cCidade+"&hl=pt-br" )
IF ! oHttp:open()
RETURN 0
ENDIF
cXML := oHttp:readAll()
oHttp:close()
oXML := TXmlDocument():New( cXML )
IF oXML:nError != HBXML_ERROR_NONE
RETURN 0
ENDIF
oCidade := oXML:findfirst( "city" )
oCondicao := oXML:findfirst( "condition" )
oTemperatura := oXML:findfirst( "temp_c" )
oUmidade := oXML:findfirst( "humidity" )
oVento := oXML:findfirst( "wind_condition" )
oPrevisao := oXML:findfirst( "forecast_conditions" )
IF oPrevisao == NIL
RETURN hPrevisaoDoTempo
ENDIF
DO WHILE .T.
oIterator := TXmlIterator():New( oPrevisao )
DO WHILE .T.
oTagAtual := oIterator:Next()
IF oTagAtual == NIL
aAdd( aDias, { cDia, cMin, cMax, cCond } )
EXIT
ELSE
IF oTagAtual:cName == "day_of_week"
cDia := oTagAtual:aAttributes[ "data" ]
ELSEIF oTagAtual:cName == "low"
cMin := StrZero( val( oTagAtual:aAttributes[ "data" ] ), 2 )
ELSEIF oTagAtual:cName == "high"
cMax := StrZero( val( oTagAtual:aAttributes[ "data" ] ), 2 )
ELSEIF oTagAtual:cName == "condition"
cCond := oTagAtual:aAttributes[ "data" ]
ENDIF
ENDIF
ENDDO
oPrevisao := oXML:findnext()
IF oPrevisao == NIL
EXIT
ENDIF
ENDDO
hPrevisaoDoTempo["CidadeBase"] = oCidade:aAttributes[ "data" ]
hPrevisaoDoTempo["CondicaoAtual"] = oCondicao:aAttributes[ "data" ]
hPrevisaoDoTempo["TemperaturaAtual"] = oTemperatura:aAttributes[ "data" ]
hPrevisaoDoTempo["UmidadeAtual"] = oUmidade:aAttributes[ "data" ]
//hPrevisaoDoTempo["VentoAtual"] = oVento:aAttributes[ "data" ]
hPrevisaoDoTempo["aProximosDias"] = {}
FOR i:=1 to LEN( aDias )
AAdd( hPrevisaoDoTempo["aProximosDias"], { hDiasSemana[aDias[i][1]], aDias[i][3], aDias[i][2], aDias[i][4] } )
NEXT
If Len(hPrevisaodoTempo)>1
// @ 18,00 say 'Cidade..: ' + hPrevisaoDoTempo["CidadeBase"] color('GR+/N')
@ 19,00 say 'Temperatura.....: ' + hPrevisaoDoTempo["TemperaturaAtual"] + '§' color('W*+')
@ 19,24 say ' '+hPrevisaoDoTempo["UmidadeAtual"] COLOR("W*+")
@ 19,40 say ' Condicao: ' + hPrevisaoDoTempo["CondicaoAtual"] color('W*+')
@ 19,67 say 'Fonte: Google' color('W*+')
// @ 19,30 say hPrevisaoDoTempo["VentoAtual"] COLOR("W*+")
/*
x :=hPrevisaoDoTempo["aProximosDias"]
@ 06,0 say 'Proximos Dias'
@ 08,0 say 'Dia.......: ' + PADR( x[2,1], 23 , " ") //+ 'Dia.....: ' + PADR( x[3,1], 22 , " ")
@ 09,0 say 'Maxima....: ' + PADR( x[2,2], 23 , " ") //+ 'Maxima..: ' + PADR( x[3,2], 22 , " ")
@ 10,0 say 'Minima....: ' + PADR( x[2,3], 23 , " ") //+ 'Minima..: ' + PADR( x[3,3], 22 , " ")
@ 11,0 say 'Condicao..: ' + PADR( x[2,4], 23 , " ") //+ 'Condicao: ' + PADR( x[3,4], 22 , " ")
*/
Endif
inkey(0)
RETURN
Previsao do tempo
Enviado: 26 Dez 2012 20:48
por sygecom
Olá Pessoal,
Para quem usa esse recurso do Google, fique esperto por que pelo que li vai ser desativado:
http://support.google.com/websearch/bin ... er=2664197
Previsao do tempo
Enviado: 28 Dez 2012 18:31
por Adalberto
Caros amigos,
Muito obrigado pela ajuda fornecida.
! Desfruten da alegria de viver ¡
[] Adalberto
Previsao do tempo
Enviado: 28 Dez 2012 22:38
por fladimir
Adalberto, deu certo? Pergunto pois o código q postei funcionava porém não estava funcionando mais ultimamente... vc mudou algo?
[]´s
Previsao do tempo
Enviado: 31 Dez 2012 10:56
por jamazevedo
Não está funcionando porque o Google tirou o serviço do ar.
Previsao do tempo
Enviado: 31 Dez 2012 11:15
por fladimir
Puxa q pena né... será q tem outra forma?