MAMP2 Posted July 24, 2022 Report Share Posted July 24, 2022 Alguem em um link pra baixar o arquivo de CEP atualizado quero fazer uma consulta na base de dados local e se nao encontrar eunuso a URL, pois a URL de vez em quando da uma "FALHA" porem nao estou achando onde baixar. Quote Link to comment Share on other sites More sharing options...
marcioe Posted July 25, 2022 Report Share Posted July 25, 2022 Use o https://viacep.com.br/ viacep.com.br/ws/01001000/json/ viacep.com.br/ws/01001000/xml/ Tem vários formatos de retorno. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 25, 2022 Report Share Posted July 25, 2022 Ou compre diretamente dos Correios. Nunca foi gratis. abs. Regards, saludos. Quote Link to comment Share on other sites More sharing options...
MAMP2 Posted July 25, 2022 Author Report Share Posted July 25, 2022 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 Quote Link to comment Share on other sites More sharing options...
marcioe Posted July 25, 2022 Report Share Posted July 25, 2022 Entendi, ai realmente nao sei como ajudar Quote Link to comment Share on other sites More sharing options...
MAMP2 Posted July 26, 2022 Author Report Share Posted July 26, 2022 marcio, tem um exemplo da leitura do cepo por esta url que voce mandou? como que eu faço pra tratar o retorno na URL,pode me mandar? Quote Link to comment Share on other sites More sharing options...
alex2002 Posted July 26, 2022 Report Share Posted July 26, 2022 Pessoal, uso estas tabela em MySQL. https://drive.google.com/file/d/1A1jZjaJlmKyHkd4ZfuaX0kjTSe1eJOMp/view?usp=sharing Espero que ajude os amigos. Os dados que não tenho eu saio e consulto fora, mas ela já me ajuda bastante. Um abraço, Alexandre Pereira Quote Link to comment Share on other sites More sharing options...
alex2002 Posted July 26, 2022 Report Share Posted July 26, 2022 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 Quote Link to comment Share on other sites More sharing options...
MAMP2 Posted July 26, 2022 Author Report Share Posted July 26, 2022 oi alexandre tem como baixar em excel ou texto, nao uso SQL é possivel por favor? Quote Link to comment Share on other sites More sharing options...
alex2002 Posted July 26, 2022 Report Share Posted July 26, 2022 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 Quote Link to comment Share on other sites More sharing options...
MAMP2 Posted July 27, 2022 Author Report Share Posted July 27, 2022 com certeza obrigado Quote Link to comment Share on other sites More sharing options...
MAMP2 Posted July 29, 2022 Author Report Share Posted July 29, 2022 oi alex esta dando erro em hb_jsonDecode() na compilacao , esta em alguma LIB pra colocar no projeto ? voce tem pra me mandar? Quote Link to comment Share on other sites More sharing options...
MAMP2 Posted July 29, 2022 Author Report Share Posted July 29, 2022 consegui, porem vem em UTF-8, tem como vir em formato ASCII? Quote Link to comment Share on other sites More sharing options...
MAMP2 Posted July 29, 2022 Author Report Share Posted July 29, 2022 ou existe alguma funcao que trasnforma UTF-8 em ASCII (encorde)? alguem tem? Quote Link to comment Share on other sites More sharing options...
Ladinilson Posted July 29, 2022 Report Share Posted July 29, 2022 Foi-se o tempo que apenas um DBF ficava todo atualizado kkkkkkk Uso um antigo que deve não ter várias cidades ou códigos rsrsr Se alguém tiver um (DBF) me arranja por favor ladinilson@hotmail.com Quote Link to comment Share on other sites More sharing options...
alex2002 Posted July 30, 2022 Report Share Posted July 30, 2022 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.