[Opcional] لتسهيل إدارة التبعية ، أوصي باستخدام BOSS. boss install github.com/viniciussanchez/viacep
أضف المجلد التالي إلى مشروعك في Project> Options> Resource Persiler> Directs و Condiçonals> تضمين مسار البحث عن الملف
../viacep/src
ستحتاج إلى استخدام الوحدات التالية: ViaCEP.Intf ، ViaCEP.Core ، ViaCEP.Model
uses ViaCEP.Intf, ViaCEP.Core, ViaCEP.Model; عند استشارة رمز zip تنسيق غير صالح ، على سبيل المثال: 950100100 (9 أرقام) ، 95010A10 (الأبجدية الرقمية) ، 95 01010 (مساحة) ، ستكون العائد nil .
طريقة التحقق من صحة ما إذا كان رمزًا مضغوطًا صالحًا أم لا ، فقط تأكد من أن الرمز البريدي المستنير يحتوي على 8 أرقام وأنه يمكن الوصول إليه جميعًا قبل استشارة خدمة الويب من خلال واجهة IViaCEP باستخدام طريقة Validate .
عند استشارة رمز zip تنسيق صالح ولكن غير موجود ، على سبيل المثال: 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 ; بمجرد إجراء استشارة الرمز البريدي ، يمكنك الحصول على المحتوى الذي تم إرجاعه بتنسيق JSON باستخدام طريقة Bonstring المتوفرة في فئة TViaCEPClass . انظر المثال أدناه ، حيث يتم ملء 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"
}
الوصول إلى النموذج والتحديث عبر الإنترنت: تحديث الرمز البريدي
Origin Ibge Code of Municipiities: Access Site
رمز Origin GIA/ICMS (SP متاح فقط): عرض PDF (ص .137)
VIOCEP - WebService CEP و IBGE: موقع الوصول
