Erro de Execução
Enviado: 16 Nov 2011 13:42
Boa tarde Amigos !!! O fonte abaixo refere-se á uma rotina de consulta de endereço pelo CEP. O programa compila certinho, mas está dando erro de execução. Alguém pode me ajudar à solucionar ?
O erro dá exatamente no ponto do comendo - IF ! oHttp:open() (linha 26 do código)
Mensagem de erro:
Error BASE/1004: Class: `NIL` has no exported method: NPORT Arguments: ()
Código: Selecionar todos
#include "hbgtinfo.ch"
REQUEST HB_LANG_PT
PROCEDURE MAIN()
ConfigurarAmbiente()
DesenharTela()
ConsultarCEP()
RETURN
/*** * * * * *
DesenharTela
*/
PROCEDURE ConsultarCEP
LOCAL GetList := {}
LOCAL oHttp, cXML, cCep
LOCAL cRes, cResTxt, cUf, cCidade, cTipo, cEnde, cBairro
DO WHILE .T.
cCep := Space(9)
@ 06, 05 SAY "Digite o CEP a ser consultado:" GET cCep PICTURE "99999-999"
READ
IF LastKey() == 27; EXIT; ENDIF
cCep := StrTran(AllTrim(cCep),"-","")
IF Len(cCep) != 8; LOOP; ENDIF
oHttp:= TIpClientHttp():new( "http://cep.republicavirtual.com.br/web_cep.php?cep="+cCep+"&formato=xml" )
IF ! oHttp:open()
Alert( "Erro na conexao: "+ oHttp:lastErrorMessage() )
LOOP
ENDIF
@ 08, 05 CLEAR TO MaxRow()-3, MaxCol()
@ 08, 05 SAY "=> Requisicao em andamento..." color "g/w"
cXML := oHttp:readAll()
oHttp:close()
@ 08, 05 CLEAR TO MaxRow()-3, MaxCol()
IF Empty(cXML)
@ 09, 05 SAY "Ocorreu um erro inesperado. Tente outro CEP..." COLOR "r/w"
LOOP
ENDIF
cRes := Substr( cXML, At("<resultado>",cXML)+11, At("</resultado>",cXML)-At("<resultado>",cXML)-11 )
cResTxt := Substr( cXML, At("<resultado_txt>",cXML)+15, At("</resultado_txt>",cXML)-At("<resultado_txt>",cXML)-15 )
cUf := Substr( cXML, At("<uf>",cXML)+4, At("</uf>",cXML)-At("<uf>",cXML)-4 )
cCidade := Substr( cXML, At("<cidade>",cXML)+8, At("</cidade>",cXML)-At("<cidade>",cXML)-8 )
cTipo := Substr( cXML, At("<tipo_logradouro>",cXML)+17, At("</tipo_logradouro>",cXML)-At("<tipo_logradouro>",cXML)-17 )
cEnde := Substr( cXML, At("<logradouro>",cXML)+12, At("</logradouro>",cXML)-At("<logradouro>",cXML)-12 )
cBairro := Substr( cXML, At("<bairro>",cXML)+8, At("</bairro>",cXML)-At("<bairro>",cXML)-8 )
IF cRes == "1"
@ 08, 05 SAY "Resposta do servidor.: " ; @ Row(), Col() SAY HB_ANSITOOEM( cResTxt ) COLOR "g/w"
ELSE
@ 08, 05 SAY "Resposta do servidor.: " ; @ Row(), Col() SAY HB_ANSITOOEM( cResTxt ) COLOR "r/w"
ENDIF
@ 10, 05 SAY "Tipo de logradouro...: " ; @ Row(), Col() SAY HB_ANSITOOEM( cTipo ) COLOR "n+/w"
@ 11, 05 SAY "Logradouro...........: " ; @ Row(), Col() SAY HB_ANSITOOEM( cEnde ) COLOR "n+/w"
@ 12, 05 SAY "Bairro...............: " ; @ Row(), Col() SAY HB_ANSITOOEM( cBairro ) COLOR "n+/w"
@ 13, 05 SAY "Cidade...............: " ; @ Row(), Col() SAY HB_ANSITOOEM( cCidade ) COLOR "n+/w"
@ 14, 05 SAY "UF...................: " ; @ Row(), Col() SAY cUf COLOR "n+/w"
ENDDO
RETURN
/*** * * * * *
DesenharTela
*/
PROCEDURE DesenharTela
SetColor("0/7,0/15")
Scroll()
@ 02, 04 SAY "CONSULTA DE CEP VIA WEBSERVICE COM HARBOUR" COLOR "r/w"
@ 03, 03 TO 03, 46 COLOR "r/w"
@ MaxRow()-1, MaxCol()-25 say "stanis.luksys@gmail.com"
RETURN
/********** * * * * *
ConfigurarAmbiente()
*/
PROCEDURE ConfigurarAmbiente()
Hb_LangSelect( 'PT' )
wvw_SetCodePage( 0, 255 )
wvw_SetTitle( 0, "Harbour - Consulta de CEP via webservice" )
wvw_Size_Ready( .t. )
* wvw_EnableMaximize( 0, .t. )
wvw_SetFont( 0 , "Consolas", 24, 11, 100, 4 )
SetMode( 20, 70 )
RETURN
/********** * * * * *
WVW_SIZE()
*/
function WVW_SIZE(nWinNum, hWnd, message, wParam, lParam)
LOCAL c := SaveScreen( 0, 0, MaxRow(), MaxCol() )
LOCAL aFonte := {}
LOCAL nAlt, nLar
IF wParam == 2
for i:=1 to 20
wvw_SetFont(0,"Consolas",i*2,i,100,4)
if setmode( 20, 70 )
aFonte := WVW_GETFONTINFO()
nAlt := aFonte[2]
nLar := aFonte[3]
endif
next
wvw_SetFont(0,"Consolas",nAlt,nLar,100,4)
for i:=1 to 10
wvw_SetFont(0,"Consolas",nAlt+1,nLar,100,4)
if setmode( 20, 70 )
aFonte := WVW_GETFONTINFO()
nAlt := aFonte[2]
nLar := aFonte[3]
endif
next
wvw_SetFont(0,"Consolas",nAlt,nLar,100,4)
for i:=1 to 10
wvw_SetFont(0,"Consolas",nAlt,nLar+i,100,4)
if setmode( 20, 70 )
aFonte := WVW_GETFONTINFO()
nAlt := aFonte[2]
nLar := aFonte[3]
endif
next
wvw_SetFont( 0, "Consolas", nAlt, nLar, 100,4 )
ELSEIF wParam == 0
wvw_SetFont( 0 , "Consolas", 24, 11, 100, 4 )
ENDIF
RestScreen( 0, 0, 20, 70, c )
return
#pragma BEGINDUMP
#include "hbapi.h"
HB_FUNC( WVW_SIZE_READY )
{
BOOL bIsReady;
static BOOL s_bIsReady = FALSE;
bIsReady = s_bIsReady;
if (ISLOG(1))
{
s_bIsReady = hb_parl(1);
}
hb_retl(bIsReady);
}
#pragma ENDDUMPMensagem de erro:
Error BASE/1004: Class: `NIL` has no exported method: NPORT Arguments: ()