Página 1 de 2
Busca CEP na net
Enviado: 03 Fev 2015 19:06
por Itamar M. Lins Jr.
Ola!
O site republicavirtual está fora do ar
Eu achei esse dos correios:
http://m.correios.com.br/movel/buscaCepConfirma.do alguém do grupo tem tem rotina pronta p/ consulta ?
Saudações,
Itamar M. Lins Jr.
Busca CEP na net
Enviado: 04 Fev 2015 08:45
por aferra
acredito que dê para adaptar.
http://fivewin.com.br/index.php?/topic/ ... infalivel/
Busca CEP na net
Enviado: 07 Fev 2015 20:15
por JoséQuintas
Use o meu webservice.
Ele busca on-line nos correios.
Como fica tudo salvo no banco de dados, mesmo se os correios sairem do ar ele continua funcionando com a base local.
Dá uma olhada em contribuições.
De qualquer forma, o república virtual não era online.
Busca CEP na net
Enviado: 07 Fev 2015 20:29
por Itamar M. Lins Jr.
Agradeço pela dica, porém olha que maravilha, on line no correio.
Ainda não ficou da forma que quero, porque desejo usar a classe tHtmlDocument(), da mesma forma que uso a tXMLDocument() para ler XML NFe.
Tive que fazer a gambiarra com at(), o bom é achar o NODE sei lá mais o quê bati cabeça aqui e não saiu nada.
Código: Selecionar todos
*********************
Function ChkCep(cCep)
*********************
*
*
Local cUf,cLo,cBai,cCid
LOCAL cHtml, oNode, oDoc, cURL, oHTTP
If empty(cCep)
hwg_Msginfo("Informe o CEP")
return .f.
EndIf
cURL := "http://m.correios.com.br/movel/buscaCepConfirma.do"
oHTTP:= TIPClientHTTP():New( cURL )
oHTTP:oURL:addGetForm( { ;
"cepEntrada" => cCep , ;
"tipoCep" => "cepTemp" ,;
"metodo" => "buscarCep" } )
IF ! oHTTP:Open()
hwg_msginfo( "Erro conectando:", oHTTP:lastErrorMessage() )
RETURN .F.
ENDIF
cHtml := oHTTP:ReadAll()
oHTTP:Close()
oDoc:=THtmlDocument():New( cHtml )
oDoc:writeFile( "resultado.html" )
cUF :=""
cCID:=""
cBAI:=""
cLOG:=""
cRUA:=""
cRUA:=substr(cHTML, at('>Logradouro:',cHTML), 200)
cRUA:=alltrim(subStr(cRUA, at('"respostadestaque">',cRUA) + 19, rat('</span>',cRUA)-81))
cBAI:=substr(cHTML, at('>Bairro:',cHTML), 150)
cBAI:=substr(cBAI, At('"respostadestaque">',cBAI)+19, at('</span>', cBAI)-1)
cCID:=substr(cHTML, at('>Localidade / UF:',cHTML), 250)
cCID:=AllTrim( substr(cCID, At('"respostadestaque">',cCID)+19, rat('</span>', cCID)-86) )
cUF :=AllTrim( substr(cCID, At("/",cCID)+1,2) )
cCID:=AllTrim( substr(cCID, 1, At("/",cCID)-1 ))
vCl14 := cRUA
oCl14 : Refresh()
vCl15 := cBAI
oCl15 : Refresh()
vCl17 := cCID
oCl17 : Refresh()
vCl19 := cUF
oCl19 : Refresh()
Return .t.
Se devolvesse em XML seria mais show ainda.
Tanto faz LINUX/Windows/Android código limpo.
Saudações,
Itamar M. Lins Jr.
Busca CEP na net
Enviado: 07 Fev 2015 21:29
por JoséQuintas
ve se ajuda, o que fiz em asp:
Código: Selecionar todos
cLogradouro = ""
cBairro = ""
cCidade = ""
cUf = ""
cCep = ""
For nCont = 1 To 8
cTemp = Ltrim(Rtrim(XmlNode(cResultado,"span")))
If cTemp = "Logradouro:" or cTemp = "Endereço" Then
cLogradouro = Ltrim(Rtrim(XmlNode(cResultado,"span")))
ElseIf cTemp = "Bairro:" Then
cBairro = Ltrim(Rtrim(XmlNode(cResultado,"span")))
ElseIf cTemp = "Localidade / UF:" or cTemp = "Localidade/UF:" Then
cTemp = Ltrim(Rtrim(XmlNode(cResultado,"span")))
If InStr(cTemp,"/") <> 0 Then
cCidade = Mid(cTemp,1,Instr(cTemp,"/")-1)
cUf = Mid(cTemp,Instr(cTemp,"/")+1)
cCidade = Ltrim(Rtrim(cCidade))
cUf = Ltrim(Rtrim(cUf))
End If
Elseif cTemp = "CEP:" Then
cTemp = Ltrim(Rtrim(XmlNode(cResultado,"span")))
cCep = RTrim(LTrim(cTemp))
If Len(cCep) = 8 And Len(SoNumeros(cCep)) = 8 Then
cCep = Mid(cCep,1,5) & "-" & Mid(cCep,6,3)
End If
End If
Código: Selecionar todos
Function XmlNode(cTexto,cNode)
Dim cTrecho, cInicio, cFim
cTrecho = ""
cInicio = "<" & cNode
cFim = "</" & cNode
If Instr(ctexto,cInicio) <> 0 And Instr(cTexto,cFim) <> 0 Then
cTrecho = Mid(cTexto,instr(cTexto,cInicio)+1)
cTrecho = mid(cTrecho,1,Instr(cTrecho,cFim)-1)
Do While Mid(cTrecho,1,1) <> ">" And Len(cTrecho) > 1
cTrecho = Mid(cTrecho,2)
Loop
If Len(cTrecho) <= 1 Then
cTrecho = ""
Else
cTrecho = Mid(cTrecho,2)
End if
End if
If Instr(cTexto,cFim) = 0 Then
cTexto = ""
Else
cTexto = Mid(cTexto,Instr(cTexto,cFim)+Len(cFim))
End If
XmlNode = cTrecho
End Function
InStr() é o equivalente de At()
Mid() é o equivalente de Substr()
DO WHILE-LOOP é o equivalente de DO WHILE-ENDDO
E na função, ao invés de RETURN cTrecho, é atribuído cTrecho ao nome da função. XmlNode = cTrecho
Com certeza XmlNode() tem equivalente na tHmlDocument(), que é pra extrair um node do xml.
Busca CEP na net
Enviado: 15 Abr 2015 17:55
por JoséQuintas
Me parece que os correios alteraram o esquema.
Por acaso esse ainda funciona?
Busca CEP na net
Enviado: 15 Abr 2015 18:55
por Itamar M. Lins Jr.
Está funcionando.
Saudações,
Itamar M. Lins Jr.
Busca CEP na net
Enviado: 15 Abr 2015 19:13
por Toledo
Esta funcionando somente em modo POST. Modo GET deixou de funcionar.
Veja também:
http://www.buscacep.correios.com.br/ser ... nsulta=cep
Abraços,
Busca CEP na net
Enviado: 15 Abr 2015 19:37
por JoséQuintas
E esse vém mais fácil, porque no meio de todo html tem o xml:
Código: Selecionar todos
<?xml version = '1.0' encoding = 'ISO-8859-1'?>
<table border="0" cellspacing="1" cellpadding="5" bgcolor="gray">
<tr bgcolor="#ECF3F6" onclick="javascript:detalharCep('1','2');" style="cursor: pointer;">
<td width="268" style="padding: 2px">Rua Afonso Pena - de 821/822 a 1679/1680</td>
<td width="140" style="padding: 2px">Vila Mendonça</td>
<td width="140" style="padding: 2px">Araçatuba</td>
<td width="25" style="padding: 2px">SP</td>
<td width="65" style="padding: 2px">16015-040</td>
</tr>
</table>
Busca CEP na net
Enviado: 15 Abr 2015 19:47
por Itamar M. Lins Jr.
Hummmm! 1,2,3... Mudando!

Que beleza!
Saudações,
Itamar M. Lins Jr.
Busca CEP na net
Enviado: 15 Abr 2015 21:09
por Cavalo Marinho
Boa noite a todos
Testem esta, um amigo do grupo minigui disponibilizou para todos, estou repassando, achei muito boa e dar para adaptar nos nossos sistemas.
Abraços
Busca CEP na net
Enviado: 15 Abr 2015 23:44
por Itamar M. Lins Jr.
... porque no meio de todo html tem o xml:
Não é um XML

é uma tabela.
Saudações,
Itamar M. Lins Jr.
Busca CEP na net
Enviado: 16 Abr 2015 10:25
por JoséQuintas
No final, ao mesmo tempo que é código HTML, é também um XML.
Os nodes são : <table></table> <tr></tr> <td></td>
E alguns possuem elementos adicionais.
Vemos isso nos XMLs de NFE:
Código: Selecionar todos
<nfeProc versao="3.10" xmlns="http://www.portalfiscal.inf.br/nfe">
O explorer é que não é muito rígido nisso, e deixa funcionar html incompleto, o que descaracteriza como xml.
Busca CEP na net
Enviado: 17 Abr 2015 10:34
por Itamar M. Lins Jr.
Os nodes são : <table></table> <tr></tr> <td></td>
Isso não é node, é a marcação html de uma tabela.
E alguns possuem elementos adicionais.
Isso não é elemento adicional. É o STYLE ou CSS da marcação HTML.
Vemos isso nos XMLs de NFE:
Ai sim é XML.
Resumindo, esse HTML está errado. Quem escreveu não terminou, está incompleto.
Saudações,
Itamar M. Lins Jr.
Busca CEP na net
Enviado: 17 Abr 2015 12:20
por JoséQuintas
Isso é um xml
Qual a diferença? ao invés de chamar nfe e versao, chama-se table e width.
É um XML onde os campos tem os nomes de comandos html.
É um html, que segue a formatação XML.
É as duas coisas ao mesmo tempo.
Outro exemplo, um arquivo texto contendo:
É um fonte de programa, mas continua sendo um arquivo texto.
Chamar de arquivo texto pode contrariar um programador, mas é um arquivo texto.