Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcelo R Moura

Busca End. Por CEP

Recommended Posts

Caros Amigos,

 

Gostaria de uma dica da galera:

 

preciso de uma rotina que busce, via webservice ou de uma outra forma qualquer, o endereço referente a um CEP qualquer. Tipo , eu digito o CEP e vem o Logradouro, end, bairro, cidade e UF.

 

tenho essa função aqui

 

procedure TForm1.BuscaCEP(CEP: String);

var

vLista :TStringList;

vTemp ,

vEnd,vBairro,vCidade,vUF : String;

 

begin

vTemp := IdHTTP.Get('http://republicavirtual.com.br/web_cep.php?cep='+CEP+'&formato=query_string');//formato string

memo1.Lines.Add(IdHTTP.Get('http://republicavirtual.com.br/web_cep.php?cep='+CEP+'&formato=xml'));// formato

 

vLista:= TStringList.Create;

vLista.Text:= UpperCase(StringReplace(vTemp, '&', #13#10, [rfreplaceAll]));

 

if vLista.Values['RESULTADO'] = '0' then

raise Exception.Create('Não há dados para esta seleção!');

 

vEnd := vLista.Values['TIPO_LOGRADOURO'] + ' ' + vLista.Values['LOGRADOURO'];

edtLogradouro.Text := UpperCase(StringReplace(vEnd, '+', ' ', [rfreplaceAll]));

 

vBairro := vLista.Values['BAIRRO'];

edtBairro.Text :=UpperCase(StringReplace(vBairro, '+', ' ', [rfreplaceAll]));

 

vCidade := vLista.Values['CIDADE'];

edtCidade.Text :=UpperCase(StringReplace(vCidade, '+', ' ', [rfreplaceAll]));

 

vUF := vLista.Values['UF'];

edtUF.Text :=UpperCase(StringReplace(vUF, '+', ' ', [rfreplaceAll]));

 

end;

 

 

Eis a questao...

 

nos edits, quando tem algum acento nas palavras, o conteudo fica com caracteres "malucos"...

 

no memo, sai direitinho

 

A questão... alguem tem uma dica melhor do que essa pra me passar? Alguem sabe o por que do erro nos edits?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara,

 

Eu trabalho com Delphi 5, e não tenho esse componente (idhttp), você saberia dizer qual posso usar?

 

Eu tb trabalho com Dot.net (VB) e quando preciso converter linguagem HTML para texto normal uso assim:

 

LbDescricao.Text = Server.HtmlDecode(Ds.Tables(0).Rows(0)("Cal_Descricao"))

 

Agora, claro q Delphi é Delphi né, camarada! Então, não sei qual a versão do Delphi (acho q é Delphi 7) você está usando, mas veja se não tem algo do tipo:

 

vUF := Server.HtmlDecode(vLista.Values['UF']);

 

 

ou então...

 

vTemp:=stringreplace(idhttp1.URL.URLDecode(IdHTTP.Get('http://republicavirtual.com.br/web_cep.php?cep='+CEP+'&formato=query_string')),'&',#13#10,[rfreplaceAll]);//formato string

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.