[Opcional]依存関係管理を促進するために、Bossを使用することをお勧めします。 boss install github.com/viniciussanchez/viacep
プロジェクトのプロジェクトに次のフォルダを追加します>オプション> [リソースコンパイラ]> [ディレクトとコンディ]> [ファイル]検索パスを含める
../viacep/src
次のユニットの使用を行う必要があります: ViaCEP.Intf 、 ViaCEP.Core 、 ViaCEP.Model
uses ViaCEP.Intf, ViaCEP.Core, ViaCEP.Model;たとえば、 950100100 (9桁)、 95010A10 (英数字)、 95 01010 (スペース)など、無効な形式の郵便番号に相談した場合、返品はnilになります。
有効な郵便番号であるかどうかを検証する方法は、情報に基づいた郵便番号に8数字があり、すべてが数値であり、 Validateメソッドを使用してIViaCEPインターフェイスを介してWebサービスに相談する前にアクセスできることを確認してください。
たとえば、 99999999の有効ではないが存在しない形式の郵便番号を参照すると、返品もnilなります。これは、コンサルティングされた郵便番号がデータベースでは見つからなかったことを意味します。
例:
var
ViaCEP: IViaCEP;
begin
ViaCEP := TViaCEP.Create;
if ViaCEP.Validate( ' 01001000 ' ) then
ShowMessage( ' CEP válido ' )
else
ShowMessage( ' CEP inválido ' );
end ;上記の方法では、 Interfaceを使用しているため、 TViaCEPクラスの作成されたインスタンスを破壊する必要はないことを忘れないでください。
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自治体コード:アクセスサイト
OriginGia/ICMSコード(SPが利用可能): PDFを表示(pp.137)
Viacep-無料のWebサービスCEPおよびIBGE:アクセスサイト
