Jump to content
Fivewin Brasil

arquivo de CEP confiavel


MAMP2

Recommended Posts

oi marcio, o link existe(e eu ja uso), porem vesz ou outra o link falha e eu nao posso deixar isto acontecer, entao a minha ideia é pegar um banco atualizado e primeio ir consultar no

banco de dados local, se nao achar ai eu vou no link e deixo uma rotina automatica pra atualizar a base a cada 30 dias, entende?

só que nao estou achando uma base de dados confiavel pra fazer isto

 

Link to comment
Share on other sites

Segue a rotina de consulta externa.

 

 
////////////////////////////////////////////////////////////////////////////////////////////
// NOME       : BuscaCepOnLine                                                            //
// SINTESE    : Procura nos correios um CEP e retornar array                              //
// PARAMETROS : cCEP              // 1 - Número do CEP                                    //
//              @aRetorno         // 2 - Array ( Logradouro, Bairro, Cidade, UF )         //
// RETORNO    : lAchou                                                          Alexandre //
////////////////////////////////////////////////////////////////////////////////////////////
Function BuscaCepOnLine( cCep, aRetorno )
 
local oCon, cMsg, cComando, cBuffer, cLogradouro, cBairro, cCidade, cUF
local hJson
local lRetorno := .t.
local nLen
 
hJson := {=>}
cMsg  := ''
cCep  := SoNumeros( cCep )
 
try
   oCon     := CreateObject("Microsoft.XMLHTTP")
catch oError
   cMsg     := oError:description
   lRetorno := .f.
end
 
if lRetorno
   cComando := 'https://viacep.com.br/ws/'+cCep+'/json/'
   try
      oCon:Open("GET", cComando,.f.)
   catch oError
      cMsg     := oError:description
      lRetorno := .f.
   end
endif
 
if lRetorno
   try
      oCon:Send()
   catch oError
      cMsg     := oError:description
      lRetorno := .f.
   end
endif
 
if lRetorno
   hJson    := {}
   cBuffer  := oCon:responseBody
   nLen     := hb_jsonDecode( cBuffer , @hJson )
 
   if nLen = 0
      cMsg   := "Erro"
       hJson := {=>}
   endif
 
   if !empty( hJson ) .and. HhasKey( hJson, 'logradouro' )
      cLogradouro := hJson['logradouro']
   endif
   if !empty( hJson ) .and. HhasKey( hJson, 'bairro' )
      cBairro := hJson['bairro']
   endif
   if !empty( hJson ) .and. HhasKey( hJson, 'localidade' )
      cCidade := hJson['localidade']
   endif
   if !empty( hJson ) .and. HhasKey( hJson, 'uf' )
      cUF := hJson['uf']
   endif
endif
 
if empty( cLogradouro ) .or.  empty( cBairro ) .or. empty( cCidade ) .or. empty( cUF )
   lRetrono := .f.
   aRetorno := {'','','',''}
else
   lRetorno := .t.
   aRetorno := { TiraAcentoUTF(cLogradouro), TiraAcentoUTF(cBairro), TiraAcentoUTF(cCidade), cUF }
endif
 
if !empty( cMsg )
   MsgStop( 'Não foi possível obter o CEP pelos correios!','Erro')
endif
 
return lRetorno
 
Link to comment
Share on other sites

1 hora atrás, MAMP2 disse:

oi alexandre tem como baixar em excel ou texto, nao uso SQL

é possivel por favor?

 

Gerei em .CSV com tamanho fixo.


https://drive.google.com/file/d/183F-YI8O2UF6wLZyXXt5XbSwFTQqxKX5/view?usp=sharing

Existe duas tabelas: 
- CEP
- BAIRRO

A de CEP se relaciona com o bairro para trazer o endereço completo.

Agora vai te servir.

Um abraço,

Alexandre Pereira

 

Link to comment
Share on other sites

9 horas atrás, MAMP2 disse:

ou existe alguma funcao que trasnforma UTF-8 em ASCII (encorde)? alguem tem?

 

 
Bom, talvez vc esteja usando o modo diferente do que eu uso: Tente OemToAnsi(), AnsiToOem()....


Enfim, mas vou te enviar a minha que foi feito na unha pra tirar os acentos.


Um abraço,

Alexandre Pereira
 
 
////////////////////////////DADOS DA FUNCAO////////////////////////////////////////////
// NOME       : TiraAcentoUTF                                                        //
// SINTESE    : Retirar acentos e cedilhas                                           //
// PARAMETROS : <1> cTexto para retirar os acentos                                   //
// RETORNO    : cTexto sem acentos ou cedilhas                                       //
///////////////////////////////////////////////////////////////////////////////////////
function TiraAcentoUTF( cTexto )
 
cTexto := StrTran(cTexto,"ã","a")
cTexto := StrTran(cTexto,"ä","a")
cTexto := StrTran(cTexto,"à","a")
cTexto := StrTran(cTexto,"á","a")
cTexto := StrTran(cTexto,"ª","a")
cTexto := StrTran(cTexto,"â","a")
cTexto := StrTran(cTexto,"¦","a")
cTexto := StrTran(cTexto,"è","e")
cTexto := StrTran(cTexto,"é","e")
cTexto := StrTran(cTexto,"ê","e")
cTexto := StrTran(cTexto,"ë","e")
cTexto := StrTran(cTexto,"ì","i")
cTexto := StrTran(cTexto,"í","i")
cTexto := StrTran(cTexto,"î","i")
cTexto := StrTran(cTexto,"ï","i")
cTexto := StrTran(cTexto,"ò","o")
cTexto := StrTran(cTexto,"§","o")
cTexto := StrTran(cTexto,"õ","o")
cTexto := StrTran(cTexto,"ö","o")
cTexto := StrTran(cTexto,"ó","o")
cTexto := StrTran(cTexto,"º","o")
cTexto := StrTran(cTexto,"ô","o")
cTexto := StrTran(cTexto,"õ","o")
cTexto := StrTran(cTexto,"ø","o")
cTexto := StrTran(cTexto,"ù","u")
cTexto := StrTran(cTexto,"ú","u")
cTexto := StrTran(cTexto,"ü","u")
cTexto := StrTran(cTexto,"û","u")
cTexto := StrTran(cTexto,"ç","c")
                           
                           
cTexto := StrTran(cTexto,"Ã","A")
cTexto := StrTran(cTexto,"Ä","A")
cTexto := StrTran(cTexto,"À","A")
cTexto := StrTran(cTexto,"Á","A")
cTexto := StrTran(cTexto,"Â","A")
cTexto := StrTran(cTexto,"È","E")
cTexto := StrTran(cTexto,"Ë","E")
cTexto := StrTran(cTexto,"É","E")
cTexto := StrTran(cTexto,"Ê","E")
cTexto := StrTran(cTexto,"Ì","I")
cTexto := StrTran(cTexto,"Í","I")
cTexto := StrTran(cTexto,"Î","I")
cTexto := StrTran(cTexto,"Ï","I")
cTexto := StrTran(cTexto,"Ò","O")
cTexto := StrTran(cTexto,"Õ","O")
cTexto := StrTran(cTexto,"Ó","O")
cTexto := StrTran(cTexto,"Ô","O")
cTexto := StrTran(cTexto,"Ö","O")
cTexto := StrTran(cTexto,"Ù","U")
cTexto := StrTran(cTexto,"Ú","U")
cTexto := StrTran(cTexto,"Ü","U")
cTexto := StrTran(cTexto,"Û","U")
cTexto := StrTran(cTexto,"Ç","C")
 
cTexto := StrTran(cTexto,"«"," ")
cTexto := StrTran(cTexto,"®"," ")
cTexto := StrTran(cTexto,"?"," ")
cTexto := StrTran(cTexto,"¬"," ")
cTexto := StrTran(cTexto,"¯"," ")
cTexto := StrTran(cTexto,"ý"," ")
cTexto := StrTran(cTexto,","," ")
cTexto := StrTran(cTexto,"'"," ")
cTexto := StrTran(cTexto,"`"," ")
cTexto := StrTran(cTexto,"/"," ")
cTexto := StrTran(cTexto,"\"," ")
return cTexto
 
 
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...