FUNCTION Main( cCNPJ )
IF Empty( cCNPJ ) .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
LOCAL cBloco, cText, cBlocoEndereco, aList
cBloco := GetFromInternet( "http://cnpj.info/" + cCNPJ )
cBloco := TextAfter( cBloco, "
" )
cRazao := XmlNode( cBloco, "a" )
? cRazao
cBloco := TextAfter( cBloco, "" )
cFantasia := XmlNode( cBloco, "a" )
? cFantasia
cBloco := TextAfter( cBloco, "" )
cBlocoEndereco := TextUntil( cBloco, "" )
aList := hb_RegExSplit( "
", cBlocoEndereco )
FOR EACH cText IN aList
? "Endereço " + Str( cText:__EnumIndex, 2 ) + " " + cText
NEXT
RETURN .T.
FUNCTION GetFromInternet( cUrl )
LOCAL cBloco := "", cFile := "d:\temp\lixo.txt"
LOCAL oHttp
oHTTP:= TIPClientHTTP():New( cURL )
IF oHTTP:Open()
IF oHTTP:ReadToFile( cFile )
cBloco := hb_memoread( cFile )
fErase( cFile )
Alert( "Erro gravando dados do CNPJ", oHTTP:lastErrorMessage() )
ENDIF
ELSE
Alert( "Erro conectando: ", oHTTP:lastErrorMessage() )
ENDIF
RETURN cBloco
FUNCTION TextAfter( cBloco, cText )
cBloco := Substr( cBloco, At( cText, cBloco ) + Len( cText ) )
RETURN cBloco
FUNCTION TextUntil( cBloco, cText )
cBloco := Substr( cBloco, 1, At( cText, cBloco ) - 1 )
RETURN cBloco