Um cliente meu pediu e achei interesante postar para o pessoal do grupo.
Estou migrando um ERP de um cliente para Xharbour console (por usar telnet)
E ele queria que exibisse na tela com se fosse um gadget com a temperatura, e previsao do dia.
A quem interessar a função está abaixo, precisa fazer um cadastro free em http://www.weather.com/services/xmloap.html para obter o login e a senha para acesso ao webservice.
Abs
--
Wanderley Monteiro
MAMUTE Programação de Software
Americana SP
Código: Selecionar todos
//---------------------------------------
FUNCTION PREVISAO_TEMPO()
LOCAL pCOR_BARRA:= "w+/n"
oPg := CreateObject("Microsoft.XMLHTTP")
cLocal:="BRXX0006" // Americana SP
xComando:="http://xoap.weather.com/weather/local/"+;
cLocal+;
"?cc=*&dayf=1&ut=C&link=xoap&prod=xoap&par=[SEU LOGIN]&key=[SUA_SENHA]"
oPg:Open("GET",xComando,.f.)
oPg:Send()
cBuf := oPg:responseBody
if at('<dnam>', cBuf)=0
cBuf = space(255)
else
wtCIDADE:= PegaDados('dnam' , Alltrim(cBuf) )
wtSOL := PegaDados('sunr' , Alltrim(cBuf) )
wtPORSOL:= PegaDados('suns' , Alltrim(cBuf) )
cBuf2 := PegaDados('cc' , Alltrim(cBuf) )
wtTempC := PegaDados('tmp' , Alltrim(cBuf2) )
wtIcon := PegaDados('icon' , Alltrim(cBuf2) )
wtTempH := PegaDados('hi' , Alltrim(cBuf) )
wtTempL := PegaDados('low' , Alltrim(cBuf) )
DO CASE
CASE wtIcon $ '0,01,02,03,04,17,35'
wtDescr:= 'TROVOADAS'
CASE wtIcon $ '05,41,42,43'
wtDescr:= 'NEVE'
CASE wtIcon $ '06,18'
wtDescr:= 'GRANIZO'
CASE wtIcon $ '08,09,10,11,12,40'
wtDescr:= 'CHUVA'
CASE wtIcon $ '37,38'
wtDescr:= 'ABERTO C/ CHUVA'
CASE wtIcon $ '13,14,15,16'
wtDescr:= 'GEADA'
CASE wtIcon $ '19'
wtDescr:= 'INCOBERTO'
CASE wtIcon $ '20'
wtDescr:= 'NEVOEIRO'
CASE wtIcon $ '21,22'
wtDescr:= 'ENTRE NUVENS'
CASE wtIcon $ '23,24'
wtDescr:= 'VENTO FORTE'
CASE wtIcon $ '25,44'
wtDescr:= 'SEM PREVISAO'
CASE wtIcon $ '26'
wtDescr:= 'NUBLADO'
CASE wtIcon $ '27,28'
wtDescr:= 'PARC NUBLADO'
CASE wtIcon $ '29,30,33,34'
wtDescr:= 'POUCAS NUVENS'
CASE wtIcon $ '31,32,36'
wtDescr:= 'TEMPO BOM'
CASE wtIcon $ '37,38,39,41,45,46,47'
wtDescr:= 'CHUVA RAPIDA'
ENDCASE
@19,03 say wtCIDADE COLOR pCOR_BARRA
@20,03 say "Temp: " + wtTempC +"§C / Min: " + wtTempL +"§C / M x: " + wtTempH +"§C" COLOR pCOR_BARRA
@21,03 say "Tempo Agora: " + wtDescr COLOR pCOR_BARRA
// @17,03 say "Nascente: " + wtSOL COLOR pCOR_BARRA
// @18,03 say "Poente..: " + wtPORSOL COLOR pCOR_BARRA
endif
RETURN .T.
//-----------------
STATIC FUNCTION PegaDados(cProc,cLinha,cTexto2)
LOCAL InicioDoDado :=Iif(cTexto2==Nil,"<"+cProc+">" , "<"+cProc+" "+cTexto2 )
LOCAL FinalDoDado := "</"+cProc+">"
LOCAL nPosIni := 0
LOCAL nPosFim := 0
LOCAL cRet := ''
nPosIni := At(InicioDoDado,cLinha)
cLinha := SUBSTR(cLinha,nPosIni+len(InicioDoDado))
nPosFim := At(FinalDoDado,cLinha)-1
IF nPosIni==0 .or. nPosFim==0
RETURN cRet
ENDIF
cRet := Substr(cLinha,1,nPosFim)
RETURN ( cRet)
