Funciona no Linux/Windows
Compilar:
hbmk2 cnpj_dados.prg -lhbtip -w3
********************
Function Main(cCNPJ)
********************
*
*
If empty(cCNPJ) .or. len(cCNPJ) > 14 .or. len(cCNPJ) < 14
alert("Informe o CNPJ corretamente !")
cCNPJ := "60316817000103" //CNPJ -> Microsoft //"5311379100012"
EndIf
GetCNPJ(cCNPJ)
Return Nil
***********************
Function GetCNPJ(cCNPJ)
***********************
*
*
Local cRazao, cFantasia, cEndereco, cBairro, cCidade
Local cURL, oHTTP, cBloco, nInicio, nFim, cCEP
If empty(cCNPJ)
hwg_Msginfo("Informe o CNPJ")
return .f.
EndIf
cURL := "http://cnpj.info/"+cCNPJ
oHTTP:= TIPClientHTTP():New( cURL )
IF oHTTP:Open()
IF oHTTP:ReadToFile( "cnpj_"+cCNPJ+".html" )
Else
alert( "Erro gravando dados do CNPJ: "+cCNPJ, oHTTP:lastErrorMessage() )
EndIF
Else
alert( "Erro conectando: ", oHTTP:lastErrorMessage() )
RETURN .F.
ENDIF
cBloco := upper( hb_memoread("cnpj_"+cCNPJ+".html") )
cBloco := substr(cBloco,hb_at("<BODY>",cBloco) ,hb_at("</BODY>",cBloco) )
nInicio := hb_at("NOME DA EMPRESA",cBloco)
nFim := hb_At( "</A>", cBloco, nInicio) - nInicio
cRazao := substr(cBloco,nInicio,nFim )
cRazao := substr( cRazao, hb_rat(">",cRazao)+1 )
? cRazao
cBloco := substr(cBloco,nInicio+nFim)
nInicio := hb_at("FANTASIA NOME",cBloco)
nFim := hb_At( "</A>", cBloco, nInicio) - nInicio
cFantasia := substr(cBloco,nInicio,nFim )
cFantasia := substr( cFantasia, hb_rat(">",cFantasia)+1 )
? cFantasia
cBloco := substr(cBloco,nInicio+nFim)
nInicio := hb_rat("ENDERE",cBloco)+15
nFim := hb_At( "CONTATOS", cBloco, nInicio) - nInicio - 5
//Tem endereço com 4 e 5 linhas
cBloco := substr(cBloco,nInicio,nFim)
? mlcount(cBloco)
lRef := mlcount(cBloco) == 5
nInicio := hb_rat("ENDERE",cBloco)+15
nFim := hb_At('<BR>', cBloco, nInicio) - nInicio
cEndereco := substr(cBloco,nInicio,nFim )
cEndereco := substr( cEndereco, hb_rat(">",cEndereco)+1 )
? "Endereco: " + cEndereco
If lRef
cBloco := substr(cBloco,nInicio+nFim+5)
nInicio := 1
nFim := hb_At( "<BR>", cBloco)-1
cRef := substr(cBloco,nInicio,nFim )
cRef := substr( cRef, hb_at(">",cRef)+1 )
? "Referencia: ", cRef
EndIf
cBloco := substr(cBloco,nInicio+nFim+5)
nInicio := 1
nFim := hb_At( "<BR>", cBloco)-1
cBairro := substr(cBloco,nInicio,nFim )
cBairro := substr( cBairro, hb_at(">",cBairro)+1 )
? "Bairro: ", cBairro
cBloco := substr(cBloco,nInicio+nFim+5)
nInicio := 1
nFim := hb_At( "<BR>", cBloco)-1
cCidade := substr(cBloco,nInicio,nFim )
? "Cidade: ", cCidade
cBloco := substr(cBloco,nInicio+nFim + 5)
nInicio := 1
nFim := 9
cCep := substr(cBloco,nInicio,nFim )
? "Cep: ", cCep
//cBloco := substr(cBloco,nInicio+nFim+2)
? '----'
//? cBloco
hb_vferase("cnpj_"+cCNPJ+".html")
Return .T.
Divirtam-se!
Saudações,
Itamar M. Lins Jr.