Clipper On Line • Ver Tópico - Guia Postal dos correios

Guia Postal dos correios

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Guia Postal dos correios

Mensagempor JoséQuintas » 07 Dez 2016 15:44

Tem uma coisa interessante nisso que percebi depois.
Algumas combinações são apenas as letras invertidas.
Serviu até pra uma pequena "conferida".

      CASE cTxt $ "UG,LA,AL,GU" ; cNum := "0"
      CASE cTxt $ "X8,8X,CN,NC" ; cNum := "1"
      CASE cTxt $ "Z0,EP,PE,0Z" ; cNum := "2"
      CASE cTxt $ "GR,B1,1B,RG" ; cNum := "3"
      CASE cTxt $ "3D,DI,D3,ID" ; cNum := "4"
      CASE cTxt $ "SJ,C4,4C,JS" ; cNum := "5"
      CASE cTxt $ "2A,A2,QH,HQ" ; cNum := "6"
      CASE cTxt $ "FO,09,90,OF" ; cNum := "7"
      CASE cTxt $ "7Y,DM,Y7,MD" ; cNum := "8"
      CASE cTxt $ "5V,BK,V5,KB" ; cNum := "9"
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11914
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 762 vezes

Guia Postal dos correios

Mensagempor JoséQuintas » 07 Dez 2016 15:48

Estava tentando me lembrar pra que servia a outra rotina.... rs
Era pra isso, pra listar o que faltava.

FUNCTION ConsultaMeuCep( cnAccess )

   LOCAL Rs, nAtual := 0, nOk := 0, nKey := 0, nTotal

   ? "Pesquisando meu cep"
   Rs := cnAccess:Execute( "SELECT COUNT(*) AS QTD FROM LOG_LOGRADOURO" )
   nTotal := rs:Fields( "QTD" ):Value
   Rs:Close()
   ? "num total de " + Ltrim( Str( nTotal ) ) + " CEPs"
   Rs := cnAccess:Execute( "SELECT LOG_NOME, LOG_KEY_DNE FROM LOG_LOGRADOURO" )
   DO WHILE nKey == K_ESC .AND. ! Rs:Eof()
      nKey := Inkey()
      nAtual++
      IF ! "X" $ ConverteCep( Rs:Fields( "LOG_KEY_DNE" ):Value )
         nOk++
      ENDIF
      IF Mod( nAtual, 10000 ) == 0 .OR. nTotal - nAtual < 10
         ? nAtual, nOk, nTotal - nAtual, Rs:Fields( "LOG_NOME" ):Value, Rs:Fields( "LOG_KEY_DNE" ):Value, ConverteCep( Rs:Fields( "LOG_KEY_DNE" ):Value )
      ENDIF
      Rs:MoveNext()
   ENDDO
   Rs:Close()

   RETURN NIL
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11914
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 762 vezes

Guia Postal dos correios

Mensagempor JoséQuintas » 07 Dez 2016 16:49

Uma vantagem no MySQL, ou Access, é que você pode nomear resultado, relacionar tabelas, etc.
Aqui um exemplo:

mysql.png


Trouxe os campos logradouro, bairro, cidade, UF e CEP, sendo que:
bairro é o resultado da pesquisa do bairro na tabela de bairros (log_bairro)
cidade é o resultado da pesquisa da cidade na tabela de cidades (log_localidade)
e os demais estão em log_logradouro

Basta criar uma tabela com esses campos, inserindo esse resultado e pronto.
INSERT INTO NOVATABELA ..... o comando acima


O mesmo poderia ser feito no próprio Access e já salvar a tabela pronta pelo Harbour.
Mas é interessante ver os conteúdos pra ver as possibilidades.
Cada um pode querer de um jeito.

Inclusive pode existir uma tabela IBGE, e já acrescentá-la no resultado e/ou na base nova.

Nota: acho que errei no comando na parte do bairro, vou confirmar depois.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11914
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 762 vezes

Guia Postal dos correios

Mensagempor JoséQuintas » 07 Dez 2016 17:10

Vixi... compliquei... aproveitei uma tabela do IBGE da ANP que está em outra base de dados.
Mas funcionou.
Aproveitei pra corrigir o bairro que estava errado, tinha usado o código de localidade e não de bairro.
Uma vez a base no MySQL, dá pra brincar à vontade.

Ou se tiver Access, pode brincar diretamente na base dos correios.
Isso funcionaria em Harbour também, mas ter visual dos testes é mais interessante.

,ysql2.png
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11914
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 762 vezes

Guia Postal dos correios

Mensagempor JoséQuintas » 07 Dez 2016 22:03

Não sei que tipo de teste quer fazer mas a estrutura é igual, só tem 1 campo a mais em alguns arquivos.
Ou só editar o SQL na criação de tabelas pra ficar compatível com Access.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11914
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 762 vezes

Guia Postal dos correios

Mensagempor JoséQuintas » 08 Dez 2016 15:08

NENHUM campo foi excluído.
Crie um mdb com a mesma senha dos correios, e restaure esse backup.
Depois é só APAGAR os campos NUMCEP.
Pronto.

Nota:
Se puder comprar o novo mais atualizado, melhor ainda, porque esse deixou de ser.
Acho que cópia do original já é distribuir o que é dos correios.
Não é CD, é um misero download, de um EXE de instalação que tem 3 EXEs de instalação.
E o primeiro dos três é pra instalar os outros dois.
É instalação da instalação, que instala as outras instalações.
Bem estilo Brasil.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11914
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 762 vezes

Guia Postal dos correios

Mensagempor JoséQuintas » 08 Dez 2016 15:25

Como exemplo, este aqui, se eliminar a coluna NUMCEP, tem o conteúdo exato dos correios.
Qualquer que seja o teste, o resultado com esse arquivo será o mesmo.

correios.png
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11914
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 762 vezes

Guia Postal dos correios

Mensagempor JoséQuintas » 08 Dez 2016 16:01

Uia.
Tem a lista dos novos CEPs, mas está em PDF.
Converter esses PDFs deixaria a base totalmente atualizada.

https://www.correios.com.br/para-voce/consultas-e-solicitacoes/busca-cep/novas-cidades-codificadas-por-logradouros
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11914
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 762 vezes

Guia Postal dos correios

Mensagempor JoséQuintas » 08 Dez 2016 19:45

AVISO !!!

Vários CEPs estão convertidos errados, mais de 100.000

É só converter de novo, a rotina de conversão está no post.

É só pesquisar LENGTH( TRIM( NUMCEP ) ) <> 8, e converter.

Estou usando pra atualizar meu webservice, pra não perder nenhum CEP, e sobraram esses sem atualizar, por isso percebi.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11914
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 762 vezes

Guia Postal dos correios

Mensagempor JoséQuintas » 09 Dez 2016 09:33

Outra coisa que é fod.
Assinatura do email.

contato.png


Ligando usando telefone fixo:
mensagem: pra ligar pra este telefone não precisa código da operadora

Retirando o código da operadora:
mensagem: este número de telefone não existe

Ligando pelo celular:
Cai numa central de fax.

Imaginem se não estivessem à inteira disposição, o que seria...
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11914
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 762 vezes

Guia Postal dos correios

Mensagempor JoséQuintas » 09 Dez 2016 09:44

E o cronograma dos correios, apesar que é do DNE.
O Guia Postal foi lançado 07/12, ao invés de 30/11, mas com atualizações até 16/11/2016.
Todo mês tem um novo....

correios3.png
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11914
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 762 vezes

Guia Postal dos correios

Mensagempor JoséQuintas » 09 Dez 2016 10:59

Foi mais fácil do que eu pensava.

3381 CEPs novos.

Apenas peguei os CEPs dos PDFs e adicionei no meu webservice.
Agora o próprio webservice vai atualizar.

Se os próximos saírem em PDF, só usar o mesmo esquema.

Nota: na falta de outra opção, usei o copiar/colar e rotina pra separar as "palavras" que correspondem ao CEP.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11914
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 762 vezes

Guia Postal dos correios

Mensagempor JoséQuintas » 09 Dez 2016 22:31

Os ceps vazios que adicionei.

cep1.png


Alguns ceps que já foram preenchidos

cep2.png


Só não sei o que fazer com excluídos/etc.
Por enquanto registrando as opções de cep que o correio informa., em ceplist
cep deixou de existir e entrou lista no lugar, ou foi desmembrado e o correio informa a lista pra confirmar.

cep3.png


Mas no momento, ficou mais atualizado do que o original.
E se considerar esse "extra", tem até algo mais.

É a primeira vez que os correios disponibilizam lista do que foi alterado.
Se continuar assim, vai dar pra manter atualizado.

Nota: com algumas mudanças do Windows 10, já estou conseguindo usar o monitor em 4k.
O problema é que quando esqueço de reduzir, a imagem vém pra cá grande.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11914
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 762 vezes

Guia Postal dos correios

Mensagempor JoséQuintas » 11 Dez 2016 12:42

Algumas rotinas fui fazendo e apagando, a do PDF foi uma delas.
Basicamente copiar/colar pra um arquivo texto, manualmente.

Depois no processo do arquivo texto, separar palavras, e analisar qual tinha o formato do CEP.
Mais ou menos isto:

LOCAL aCepList := {}, cCep := "", cLetra, cTxt
cTxt := MemoRead( "texto.txt" )
FOR EACH cLetra IN cTxt
   DO CASE
   CASE $ cLetra $ "0123456789"
      cCep += cLetra
   OTHERWISE
      cCep := SoNumeros( cCep )
      IF Len( cCep ) ==8
         AAdd( aCepList, cCep
      ENDIF
   ENDCASE
NEXT
...

FUNCTION SoNumeros( cTxt )

   LOCAL cSoNumero := "", cLetra

   FOR EACH cLetra IN cTxt
      IF cLetra $ "0123456789"
         cSoNumero += cLetra
     ENDIF
   NEXT
   RETURN cSoNumero


Ainda estou ajustando.
Para a lista completa de CEPs é necessário pegar LOG_LOGRADOURO, LOG_LOCALIDADE, LOG_CPC, LOG_UNID_OPER, LOG_GRANDE_USUARIO

Vamos ver o que vai sobrar agora.

Nota: Como eu disse antes, deixei por conta do webservice atualizar o resto, nem me preocupei em pegar informação completa
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11914
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 762 vezes

Guia Postal dos correios

Mensagempor JoséQuintas » 11 Dez 2016 13:54

Em mdb é mais que o dobro do que em MySql, e tem menos informação.
76.916.684 cep20161031.zip
36.428.892 cepmysql20161031.zip

Divirta-se

http://www.jpatecnologia.com.br/arquivos/cep20161031.zip

Ficará disponível por tempo limitado.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11914
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 762 vezes

Anterior Próximo



Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 7 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro