ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Validando CEP pela internet

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Sekur
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 3 de Julho de 2009
Mensagens: 148

MensagemEnviada: Sex Ago 07, 2009 4:48 pm    Assunto: Validando CEP pela internet Responder com Citação

Galera, Alguem sabe como se faz para a minha aplicação validar CEP ou endereço pela internet?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
ronylegal
Novato
Novato


Registrado: Segunda-Feira, 27 de Novembro de 2006
Mensagens: 33

MensagemEnviada: Sex Ago 07, 2009 4:53 pm    Assunto: Responder com Citação

Tu precisa fazer uma aplicação pra consumir o web service dos correios, talvez no site dos correios tenha algumas informações.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
edmargasjunior
Novato
Novato


Registrado: Quarta-Feira, 28 de Janeiro de 2009
Mensagens: 41

MensagemEnviada: Sex Ago 07, 2009 5:08 pm    Assunto: Responder com Citação

Meu camagada é o seguinte coloque na saída do seu campo "CEP".

Código:

procedure TFRM_Cliente.DB_CEPExit(Sender: TObject);
var
   Resposta: TStringStream;
begin
     if (DB_CEP.Text = '') or (Length(DB_CEP.Text) < 8) then
     begin
        Application.MessageBox('CEP nulo ou inválido.', 'Erro - Aviso do Sistema', mb_iconwarning+mb_ok);
        exit;
     end;
     Resposta   := TStringStream.Create('');
     TSConsulta := TStringList.Create;
     IdHTTP.Request.UserAgent:='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV2';
     TSConsulta.Values['&cep']  := DB_CEP.Text;
     TSConsulta.Values['&formato']  := 'xml';

     IdHTTP.Post('http://cep.republicavirtual.com.br/web_cep.php?', TSConsulta, Resposta);
     XMLBuscaCEP.Active := True;
     XMLBuscaCEP.Encoding := 'iso-8859-1';
     XMLBuscaCEP.LoadFromStream(Resposta);
     ComboDB_TipoEndereco.Text := XMLBuscaCEP.DocumentElement.ChildNodes['tipo_logradouro'].NodeValue;
     DB_Logradouro.Text := XMLBuscaCEP.DocumentElement.ChildNodes['tipo_logradouro'].NodeValue+' '+XMLBuscaCEP.DocumentElement.ChildNodes['logradouro'].NodeValue;
     DB_Bairro.Text := XMLBuscaCEP.DocumentElement.ChildNodes['bairro'].NodeValue;
     ComboDB_Cidade.Text := XMLBuscaCEP.DocumentElement.ChildNodes['cidade'].NodeValue;
     TSConsulta.Free;
     Resposta.Free;
     XMLBuscaCEP.Active := False;
end;


Acrescente dois componentes TXMLDocuments e o TIdHTTP, neste segundo componente basta configurar o mesmo para sua rede, tipo proxy, etc...


Espero ter ajudado, qualquer coisa posta ai. Very Happy
_________________
Edmar Junior
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Yahoo Messenger MSN Messenger
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Dom Ago 09, 2009 3:29 pm    Assunto: Responder com Citação

Amigo sua rotina somente deixou de contemplar o erro, caso o cep nao exista, se o xmlDocument nao consiguir ler os nodes é gerado uma exceção...


eis a rotina original:

http://www.activedelphi.com.br/forum/viewtopic.php?t=47655&postdays=0&postorder=asc&start=30&sid=6c5b55950832fca158e8fa47c000485e


Eu refiz uma parte do código, assim ele fica melhor em termos de tratamento de exceções...


bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Sekur
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 3 de Julho de 2009
Mensagens: 148

MensagemEnviada: Qua Ago 12, 2009 6:05 pm    Assunto: Responder com Citação

johnny-walker escreveu:
Amigo sua rotina somente deixou de contemplar o erro, caso o cep nao exista, se o xmlDocument nao consiguir ler os nodes é gerado uma exceção...


eis a rotina original:

http://www.activedelphi.com.br/forum/viewtopic.php?t=47655&postdays=0&postorder=asc&start=30&sid=6c5b55950832fca158e8fa47c000485e


Eu refiz uma parte do código, assim ele fica melhor em termos de tratamento de exceções...


bye


Perfeito! O codigo funcionou muito bem!
A não ser a linha 'if (ECEP.Text = '') or (Length(ECEP.Text) <8> 8 ) then' que eu tive que mudar para 'if (ECEP.Text = '') or (Length(ECEP.Text) <8 ) then'. Fora isso, show de bola.
Agradeço muito galera!

Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Sekur
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 3 de Julho de 2009
Mensagens: 148

MensagemEnviada: Qua Ago 12, 2009 6:16 pm    Assunto: Responder com Citação

Alguem sabe se é confiavel criar uma aplicação comercial usando o webservice do exmeplo (http://cep.republicavirtual.com.br/web_cep.php?)?

Se não, alguem indicaria outro?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qui Ago 13, 2009 12:57 am    Assunto: Responder com Citação

Amigo isto infelizmente nem é culpa minha do codigo ter saido errado e sim do prprio site que ao postar corrompe o mesmo com outras coisas, parecer ter haver com alguns scripts html...


bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Sekur
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 3 de Julho de 2009
Mensagens: 148

MensagemEnviada: Qui Ago 13, 2009 10:20 am    Assunto: Responder com Citação

Ah, que isso...
To muito grato pelo auxilio.

Mesmo assim, alguem sabe se essa base é confiavel?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
harleydk
Profissional
Profissional


Registrado: Quinta-Feira, 4 de Setembro de 2008
Mensagens: 635

MensagemEnviada: Qui Ago 13, 2009 10:27 am    Assunto: Responder com Citação

é sim, implementei essa mesma rotina no sistema da empresa a bastante tempo e nenhum cliente nunca reclamou.

boto fé
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Sekur
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 3 de Julho de 2009
Mensagens: 148

MensagemEnviada: Qui Ago 13, 2009 2:39 pm    Assunto: Responder com Citação

harleydk escreveu:
é sim, implementei essa mesma rotina no sistema da empresa a bastante tempo e nenhum cliente nunca reclamou.

boto fé


É mesmo? Que bom!
Outra duvida. Esta base de dados é constantemente atualizada?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qui Ago 13, 2009 4:21 pm    Assunto: Responder com Citação

Amigo se vc procurar não encontrará outra base para consulta, algumas ficam no ar por algum tempo e depois saem do ar repentinamente, seria exigir demais uma base atualizada, mesmo pq a base é copyrighted dos correios e eles cobram por esta informacao, sendo que para consultar o webservice dos correios sem vc hackea-lo tem de pagar pelo acesso aos servicos de CEP, mesmo pq esta base dos correios tem de ser mantida, sem receber por isto fica dificil manter uma base tao grande...

Vc pode baixar uma base no emule, basta procurar, tem cerca de 100 mb, 30 mb compactado e cerca de 700000 ceps...


bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
harleydk
Profissional
Profissional


Registrado: Quinta-Feira, 4 de Setembro de 2008
Mensagens: 635

MensagemEnviada: Qui Ago 13, 2009 5:31 pm    Assunto: Responder com Citação

ou faz o que o johnny-walker falou ou pode comprar dos correios tb...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
edmargasjunior
Novato
Novato


Registrado: Quarta-Feira, 28 de Janeiro de 2009
Mensagens: 41

MensagemEnviada: Sex Ago 14, 2009 10:19 am    Assunto: Responder com Citação

O código que inseri já uso tem dois anos +-, e funciona tranquilamente, infelizmente não é tão atualizada assim.

Os correios vendem CD's com essa base de dados, até 2002 ainda era distribuido gratuitamente essa base para quem quisesse, mas agora só pagando e não é muito caro não.

Abração, qualquer coisa posta ai! Very Happy Wink
_________________
Edmar Junior
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Yahoo Messenger MSN Messenger
Sekur
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 3 de Julho de 2009
Mensagens: 148

MensagemEnviada: Seg Ago 17, 2009 11:12 am    Assunto: Responder com Citação

Eu encontrei um webservice da KingHost. Para utliza-lo é necessario contratar um plano deles. Fora o fato de ele ser pago, alguem conhece alguma desvantagem nele ou não me aconcelharia a utiliza-lo?

Outra duvida. Alguem conhece algum webservice que funcione ao contrario? Ao inves de inserir um CEP para obter o endereço, inserir um endereço para obter um CEP.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB