[Opcional] เพื่ออำนวยความสะดวกในการจัดการการพึ่งพาฉันขอแนะนำให้ใช้เจ้านาย boss install github.com/viniciussanchez/viacep
เพิ่มโฟลเดอร์ต่อไปนี้ลงในโครงการของคุณใน โครงการ> ตัวเลือก> ทรัพยากรคอมไพเลอร์> กำกับและcondiçonals> รวมเส้นทางการค้นหาไฟล์
../viacep/src
คุณจะต้องใช้หน่วยต่อไปนี้: ViaCEP.Intf , ViaCEP.Core , ViaCEP.Model
uses ViaCEP.Intf, ViaCEP.Core, ViaCEP.Model; เมื่อปรึกษารหัสซิปรูปแบบที่ไม่ถูกต้องตัวอย่างเช่น: 950100100 (9 หลัก), 95010A10 (ตัวอักษรและตัวเลข), 95 01010 (พื้นที่) การส่งคืนจะ nil
วิธีการตรวจสอบว่าเป็นรหัสไปรษณีย์ที่ถูกต้องหรือไม่เพียงตรวจสอบให้แน่ใจว่ารหัสไปรษณีย์ที่ได้รับข้อมูลมี 8 หลักและทั้งหมดเป็นตัวเลขและสามารถเข้าถึงได้ก่อนที่จะปรึกษาเว็บเซอร์เวทผ่านอินเตอร์เฟส IViaCEP โดยใช้วิธี Validate
เมื่อปรึกษารหัสซิปรูปแบบที่ถูกต้อง แต่ไม่มีอยู่ตัวอย่างเช่น: 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 โดยใช้วิธี . toJSonstring ที่มีอยู่ในคลาส 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 Municipalities: Access Site
รหัส Origin GIA/ICMS (SP พร้อมใช้งานเท่านั้น): ดู PDF (pp.137)
VIACEP - ฟรี WebService CEP และ IBGE: Access Site
