2

C#で記述されたロジスティクスソフトウェアでは、指定された郵便番号がデータベースの範囲の1つにあるかどうかを確認する必要があります。

たとえばドイツの場合

範囲:47000-48000指定された郵便番号:47057結果:True

数値の郵便番号の場合は問題ありません。しかし、英国の郵便番号はどうですか?W11 2BQは、ロンドンの郵便番号の例です。

基本的な考え方の1つは、各文字をASCIIコードに変換し、左から右に単純に書き込むことによって、郵便番号を数字に変換することです。

それで

W11 2BQ-> 87 49 49 32 50 66 81-> 87,494,932,506,681

したがって、1つの単純な郵便番号が非常に大きな数になり、それが私を悩ませます。英語の郵便番号はサイズが異なる場合があるため(最大8文字)、結果の数値はさらに大きくなります。

SQL Serverを使用して、指定された郵便番号が範囲内にあるかどうかを確認します。

範囲計算のために英国の郵便番号を処理するための公式の手法はありますか?

最高、アルパー

4

3 に答える 3

0

「郵便番号」は、それに対してコーディングしようとするのではなく、完全に恣意的なシステムです-あなたの目的が包括的な郵便番号理解ライブラリを書くことでない限り-あなたがしていることを行うことができるライブラリを見つける/支払う/盗むことを強くお勧めします要求する。

それが役立つ場合、英国の郵便番号の基本的なルールは次のとおりです(私が見たものから覚えている限り):

[AZ]{1,2} - 地域内の仕分け倉庫を表す 2 文字のコード \d - 仕分け倉庫の管轄区域の細分化 [必須スペース] \d[AZ]{2} - によって占められている連続した地域の英数字コード10 ~ 100 個のアドレスのグループ

私の要約が間違っていたり不完全だったりしても驚かないでしょう。私が見たすべての郵便番号は、私が言及した形式になっていますが、実際の規則を知らないので、別の形式の郵便番号が存在する可能性があります。これは、システムの性質を広く評価するためだけに含まれています。

于 2012-04-06T20:25:53.147 に答える
0

GeoNames Web サービスは、開始するのに適した場所かもしれません。どういうわけか、API を介して郵便番号を検証できるはずです。独自の検証ロジックを作成したい場合は、データベースもエクスポートできると思います。

于 2012-04-06T20:30:36.380 に答える
0

郵便番号を ASCII に変換するのは得策ではないと思います。その理由は明らかです。1210121 のような ASCII 変換値 (一例) がある場合、問題は (12) (10) (121) または (12) (101) (21) として分離することです。これは、このようなわずかな利益のために多くの作業を行うようです。

でも、SQLは使えないの??

 select * from ZIPTable where zipcode IN ('G4543','G3543')

注: サブクエリから郵便番号の値を取得できます。

于 2012-04-06T20:22:53.903 に答える