Página 3 de 5
Guia Postal dos correios
Enviado: 07 Dez 2016 16:44
por JoséQuintas
Tem uma coisa interessante nisso que percebi depois.
Algumas combinações são apenas as letras invertidas.
Serviu até pra uma pequena "conferida".
Código: Selecionar todos
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"
Guia Postal dos correios
Enviado: 07 Dez 2016 16:48
por JoséQuintas
Estava tentando me lembrar pra que servia a outra rotina.... rs
Era pra isso, pra listar o que faltava.
Código: Selecionar todos
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
Guia Postal dos correios
Enviado: 07 Dez 2016 17:49
por JoséQuintas
Uma vantagem no MySQL, ou Access, é que você pode nomear resultado, relacionar tabelas, etc.
Aqui um exemplo:
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.
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.
Guia Postal dos correios
Enviado: 07 Dez 2016 18:10
por JoséQuintas
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.
Guia Postal dos correios
Enviado: 07 Dez 2016 23:03
por JoséQuintas
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.
Guia Postal dos correios
Enviado: 08 Dez 2016 16:08
por JoséQuintas
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.
Guia Postal dos correios
Enviado: 08 Dez 2016 16:25
por JoséQuintas
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.
Guia Postal dos correios
Enviado: 08 Dez 2016 17:01
por JoséQuintas
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/c ... ogradouros
Guia Postal dos correios
Enviado: 08 Dez 2016 20:45
por JoséQuintas
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.
Guia Postal dos correios
Enviado: 09 Dez 2016 10:33
por JoséQuintas
Outra coisa que é fod.
Assinatura do email.
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...
Guia Postal dos correios
Enviado: 09 Dez 2016 10:44
por JoséQuintas
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....
Guia Postal dos correios
Enviado: 09 Dez 2016 11:59
por JoséQuintas
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.
Guia Postal dos correios
Enviado: 09 Dez 2016 23:31
por JoséQuintas
Os ceps vazios que adicionei.
Alguns ceps que já foram preenchidos
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.
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.
Guia Postal dos correios
Enviado: 11 Dez 2016 13:42
por JoséQuintas
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:
Código: Selecionar todos
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
Guia Postal dos correios
Enviado: 11 Dez 2016 14:54
por JoséQuintas
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/arquivo ... 161031.zip
Ficará disponível por tempo limitado.