Bom dia, Terminei de conferir os dados, estou enviando a base em formato .sql novamente.
Usei engenharia reversa para conferir e criar a rotina em Delphi, e, como não confiei muito naquele campo LOG_KEY_DNE, decodifiquei pelo campo CEP mesmo. Conferi todos os registros que estou enviando, então, se der algum problema com a base, favor verificar se elas possuem o mesmo número de registros do resuminho abaixo: - Table 'LOG_BAIRRO' created - 44089 records moved - Table 'LOG_CONTROLE' created - 1 records moved - Table 'LOG_CPC' created - 2795 records moved - Table 'LOG_FAIXA_BAIRRO' created - 90054 records moved - Table 'LOG_FAIXA_CPC' created - 4191 records moved - Table 'LOG_FAIXA_LOCALIDADE' created - 351 records moved - Table 'LOG_FAIXA_UF' created - 27 records moved - Table 'LOG_FAIXA_UOP' created - 3257 records moved - Table 'LOG_GRANDE_USUARIO' created - 11413 records moved - Table 'LOG_LOCALIDADE' created - 10616 records moved - Table 'LOG_LOGRADOURO' created - 855861 records moved - Table 'LOG_TIPO_LOGR' created - 6 records moved - Table 'LOG_UNID_OPER' created - 14937 records moved http://174.120.10.79/correios.zip MD5SUM: fc1aa82eb172bb9f8c8e6810d58211a6 Vou deixar apenas a base, quem quiser os fontes e o método é só pedir por e-mail... Um abraço, Andrey Wischneski Em 25 de abril de 2012 01:06, Andrey Wischneski <[email protected]>escreveu: > Isso mesmo, > > Postei uma correção na função que decodifica, me enganei e coloquei 'D1' > ao invés de 'DI', um erro bem bobo na verdade. > > Para ter certeza de que as coisas estão funcionando direitinho eu fiz um > programinha em Delphi utilizando a mesma rotina de criptografia utilizada > pelos correios (http://www.cityinthesky.co.uk/opensource/dcpcrypt), esse > programinha decodifica pelo campo CEP codificado com twofish + base64 + > hash e gera um novo arquivo de texto com o código e o campo CEP > decodificado, fiz a comparação dessa rotina com a minha rotina em PHP ( > http://pastebin.com/SGPhCSG1) e está tudo OK, quanto as outras rotinas > postadas eu não posso garantir nada pois não testei... > > Um abraço a todos, logo posto a nova base. > > Andrey > > > > Em 24 de abril de 2012 19:45, Mauro Matos <[email protected]>escreveu: > > Olá Todos, >> >> Parece haver apanas um problema com a descodificação do campo >> log_key_dne de alguns registros, que estão decodificados no campo cep >> na mesma tabela (log_logradouro). >> >> Encontrei em >> http://blog.otavio.info/2008/06/banco-de-dados-dos-correios.html, >> uma função para PostgreSQL, postada por Allyson, que parece resolver o >> problema. Aí e só atualizar o campo cep com uma instrução update. >> >> cep=# select count(*) from log_logradouro; >> count >> -------- >> 855861 >> (1 row) >> >> cep=# select count(*) from log_logradouro where cep <> >> fncdecryptcep(log_key_dne); >> count >> -------- >> 114323 >> (1 row) >> >> cep=# UPDATE log_logradouro SET cep = fncdecryptcep(log_key_dne) WHERE >> cep <> fncdecryptcep(log_key_dne); >> UPDATE 114323 >> >> Consultando: >> >> cep=# SELECT log_logradouro.log_nome as "Logradouro", >> log_bairro.bai_no as "Bairro", log_localidade.loc_no as "Localidade", >> log_logradouro.ufe_sg as "UF", log_logradouro.cep as "CEP" FROM >> log_logradouro, log_bairro, log_localidade WHERE >> log_logradouro.bai_nu_sequencial_ini = log_bairro.bai_nu_sequencial >> AND log_logradouro.loc_nu_sequencial = >> log_localidade.loc_nu_sequencial AND log_logradouro.cep = '89280412'; >> Logradouro | Bairro | Localidade | UF | CEP >> ----------------------+--------+------------------+----+---------- >> Rua Gerhardt Ziesche | Centro | São Bento do Sul | SC | 89280412 >> (1 row) >> >> Lembrando que o campo cep, também está presente em outras tabelas. >> >> A função: >> >> Create or Replace Function fncdecryptcep(argkeydne varchar) Returns >> varchar AS $fncdecryptcep$ >> Declare >> decryptedcep varchar := ''; >> Begin >> For i In 1..length($1) By 2 Loop >> Case substr($1,i,2) >> When 'X8','CN','8X','NC' Then >> decryptedcep := decryptedcep || 1; >> When 'Z0','EP','0Z','PE' Then >> decryptedcep := decryptedcep || 2; >> When '1B','GR','B1','RG' Then >> decryptedcep := decryptedcep || 3; >> When '3D','ID','D3','DI' Then >> decryptedcep := decryptedcep || 4; >> When '4C','JS','C4','SJ' Then >> decryptedcep := decryptedcep || 5; >> When '2A','HQ','A2','QH' Then >> decryptedcep := decryptedcep || 6; >> When '09','FO','90','OF' Then >> decryptedcep := decryptedcep || 7; >> When 'Y7','DM','7Y','MD' Then >> decryptedcep := decryptedcep || 8; >> When '5V','BK','V5','KB' Then >> decryptedcep := decryptedcep || 9; >> When 'UG','AL','GU','LA' Then >> decryptedcep := decryptedcep || 0; >> Else >> Return Null; >> End Case; >> End Loop; >> Return decryptedcep; >> End; >> $fncdecryptcep$ Language plpgsql; >> >> Comment On Function fncdecryptcep(argkeydne varchar) Is 'Função para >> Descriptografar os CEPs do Banco de Dados do DNE'; >> >> Abraços >> >> >> Em 24 de abril de 2012 11:16, Ademir Cristiano Gabardo >> <[email protected]> escreveu: >> > SELECT * FROM log_logradouro WHERE CEP = 89280412; >> > >> > Este é o cep do meu prédio... não está no DB. >> > Por nome de rua tbm não "Gerhardt Ziesche" >> > >> > (Na busca dos correios)... >> > Busca CEP >> > Faça suas consultas individuais de CEP, destinadas a endereçamentos de >> > objetos de correspondências a serem postadas nos Correios. >> > 1 Logradouro(s) >> > Logradouro Bairro Localidade UF CEP >> > Rua Gerhardt Ziesche Centro São Bento do Sul SC >> 89280-412 >> > >> > >> >> _______________________________________________ >> [email protected] >> http://www.codeigniter.com.br >> http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br >> >> --------------------------- >> Oportunidade de negócio >> http://www.franquiasargohost.net >> --------------------------- >> > > _______________________________________________ [email protected] http://www.codeigniter.com.br http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br --------------------------- Oportunidade de negócio http://www.franquiasargohost.net ---------------------------

