viacep
v1.0.2
[Opcional]为了促进依赖管理,我建议使用老板。 boss install github.com/viniciussanchez/viacep
将以下文件夹添加到您的项目>选项>选项>资源编译器> Direct和Condiçonals>包含文件搜索路径中
../viacep/src
您将需要使用以下单元: ViaCEP.Intf , ViaCEP.Core , ViaCEP.Model
uses ViaCEP.Intf, ViaCEP.Core, ViaCEP.Model;当咨询无效格式邮政编码时,例如: 950100100 (9位), 95010A10 (字母数字), 95 01010 (Space),返回将为nil 。
验证它是否是有效的邮政编码的方法,只需确保知情的邮政编码具有8数字,并且所有数字都可以访问,并且可以在使用Validate方法通过IViaCEP接口咨询WebService之前访问。
例如,当咨询有效但不存在的格式邮政编码时,例如: 99999999 ,返回也将nil 。这意味着在数据库中找不到咨询的邮政编码。
例子:
var
ViaCEP: IViaCEP;
begin
ViaCEP := TViaCEP.Create;
if ViaCEP.Validate( ' 01001000 ' ) then
ShowMessage( ' CEP válido ' )
else
ShowMessage( ' CEP inválido ' );
end ;请记住,在上述方法中,不必破坏TViaCEP类创建的实例,因为它使用了Interface 。
var
ViaCEP: IViaCEP;
CEP: TViaCEPClass;
begin
ViaCEP := TViaCEP.Create;
// Aqui você pode chamar a rotina para validar se é um CEP válido.
CEP := ViaCEP.Get(edtCEPConsultar.Text);
if not Assigned(CEP) then
Exit; // Aqui você pode exibir uma mensagem para o usuário falando que o CEP não foi encontrado.
try
edtJSON.Lines.Text := CEP.ToJSONString;
edtCEP.Text := CEP.CEP;
edtLogradouro.Text := CEP.Logradouro;
edtComplemento.Text := CEP.Complemento;
edtBairro.Text := CEP.Bairro;
edtLocalidade.Text := CEP.Localidade;
edtUF.Text := CEP.UF;
edtDDD.Text := CEP.DDD;
edtIBGE.Text := CEP.IBGE;
edtGIA.Text := CEP.GIA;
finally
CEP.Free;
end ;
end ;进行邮政编码咨询后,您可以使用TViaCEPClass类中可用的.tojsonstring方法以JSON格式获得返回的内容。请参阅下面的示例,其中TMemo填充了查询的内容:
var
CEP: TViaCEPClass;
begin
Memo.Lines.Text := CEP.ToJSONString;
end ; {
"cep": "01001-000",
"logradouro": "Praça da Sé",
"complemento": "lado ímpar",
"bairro": "Sé",
"localidade": "São Paulo",
"uf": "SP",
"ddd": "",
"ibge": "3550308",
"gia": "1004"
}
访问表格并在线更新:更新邮政编码
原始IBGE市政守则:访问网站
Origin GIA/ICMS代码(仅可用):查看PDF(pp.137)
ViaCep-免费网站服务CEP和IBGE:访问网站
