2012-04-06 11 views
1

C#で書かれたロジスティクスソフトウェアでは、指定された郵便番号がデータベースの範囲の1つであるかどうかを確認する必要があります。ドイツの場合英国の郵便番号範囲の計算

は、例えば

範囲:47000から48000 考える郵便番号:47057 結果:数値郵便番号のための真の

、それは大丈夫です。しかし、英国の郵便番号はどうですか? W11 2BQは、ロンドンの郵便番号の例です。

基本的なアイデアの1つは、各文字をASCIIコードに変換して左から右に書くだけで郵便番号を数字に変換することです。

ので

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

はそう簡単な一郵便番号は、非常に大きな数になり、それは私を乱します。英国の郵便番号はサイズが異なります(最大8文字)ので、結果として得られる数字はさらに大きくなります。

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

英国の郵便番号を範囲計算に使用する公式のテクニックはありますか?

ベスト、 アルパース

+1

データベースの範囲(他の誰かが定義した範囲ですか?)を意味する「間」が何であるかを特定し、実装する必要があります。 –

答えて

0

私はASCIIに郵便番号を変換することは良いアイデアだとは思いません。理由は非常に明白です。 1210121(単なる例)のようなASCII変換値がある場合、問題は(12)(10)(121)または(12)(101)(21)として分離することです。このような小さな利益のために、これは多くの仕事のようです。

でも、SQLを使用できませんでしたか?

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

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

0

「郵便番号」は、コード化を試みるのではなく、完全に任意のシステムです。あなたの目的が包括的な郵便番号の理解ライブラリを書くことを目的としている場合を除きます。 - できることのライブラリを探す/あなたが求めているもの。

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

[AZ] {1,2} - ソートを表す2文字のコード地域におけるデポー \ D - D \ ソーティングデポの管轄 [必須スペース]の細分[AZ] {2} - 10-100アドレス

それwouldnのグループによって占められる隣接領域に対する英数字コード私のsummarisationが間違っている/不完全な場合私は驚きません。私が見たすべての郵便番号は私が言及した形式ですが、私は実際の規則を知らないので、別の形式のものが存在する可能性があります。これは単にシステムの性質を広く評価するためのものです。

0

GeoNames Web Serviceはお勧めです。どういうわけか、APIを使って郵便番号を検証することは可能です。あなた自身の検証ロジックを書く場合は、データベースをエクスポートすることもできます。