[Opcional] Pour faciliter la gestion des dépendances, je recommande d'utiliser Boss. boss install github.com/viniciussanchez/viacep
Ajoutez le dossier suivant à votre projet dans le projet> Options> Compiler de ressource> Directs et Condiçonals> Inclure le chemin de recherche de fichiers
../viacep/src
Vous devrez effectuer l'utilisation des unités suivantes: ViaCEP.Intf , ViaCEP.Core , ViaCEP.Model
uses ViaCEP.Intf, ViaCEP.Core, ViaCEP.Model; Lorsqu'il est consulté un code postal au format non valide, par exemple: 950100100 (9 chiffres), 95010A10 (alphanumérique), 95 01010 (espace), le retour sera nil .
La méthode pour valider s'il s'agit d'un code postal valide ou non, assurez-vous simplement que le code postal éclairé a 8 chiffres et que tous sont numériques et sont accessibles avant de consulter le service Web via l'interface IViaCEP à l'aide de la méthode Validate .
Lorsqu'il est consulté un code postal à format valide mais inexistant, par exemple: 99999999 , le retour sera également nil . Cela signifie que le code postal consulté n'a pas été trouvé dans la base de données.
Exemple:
var
ViaCEP: IViaCEP;
begin
ViaCEP := TViaCEP.Create;
if ViaCEP.Validate( ' 01001000 ' ) then
ShowMessage( ' CEP válido ' )
else
ShowMessage( ' CEP inválido ' );
end ; N'oubliez pas que dans la méthode ci-dessus, il n'est pas nécessaire de détruire l'instance créée de la classe TViaCEP , car elle utilise une 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 ; Une fois que vous avez effectué la consultation du code postal, vous pouvez obtenir le contenu renvoyé au format JSON en utilisant la méthode .tojSontring disponible dans la classe TViaCEPClass . Voir l'exemple ci-dessous, où un TMemo est peuplé du contenu de la requête:
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"
}
Accéder au formulaire et mettre à jour en ligne: mettre à jour le code postal
Origin Code des municipalités: site d'accès
Code d'origine GIA / ICMS (SP disponible uniquement): Voir PDF (pp.137)
Vicep - Webservice GRATUIT CEP et IBGE: site d'accès
