2012-04-06 17 views
1

In einer Logistik-Software, die in C# geschrieben wird, muss ich überprüfen, ob die angegebene Postleitzahl zwischen einem der Bereiche in der Datenbank ist.UK PLZ-Bereich Berechnung

Für Deutschland zum Beispiel

Bereich: 47.000-48.000 Gegeben Postleitzahl: 47057 Ergebnis: Echtes

für numerische Postleitzahlen, es ist in Ordnung. Aber was ist mit britischen Postleitzahlen? W11 2BQ ist eine Beispiel-Postleitzahl aus London.

eine der grundlegenden Ideen ist, Konvertieren von Postleitzahlen in Zahlen durch die Umwandlung jedes Zeichen in seine ASCII-Code und Schreiben von links nach rechts einfach.

so

W11 2BQ -> 49 49 32 87 50 66 81 -> 87.494.932.506.681

so ein einfach wird Postleitzahl eine sehr große Zahl und das stört mich. Englisch Postleitzahlen können in den Größen variieren (bis zu 8 Zeichen), so dass die resultierende Zahl noch größer wird.

Ich benutze SQL-Server, um zu überprüfen, ob die angegebene Postleitzahl in Reichweite ist.

Gibt es eine offizielle Technik, um mit britischen Postleitzahlen für die Bereichsberechnung umzugehen?

Best, Alper

+1

Sie müssen herausfinden, was "zwischen" für Bereiche in Ihrer Datenbank bedeutet (sind diese Bereiche von jemand anderem definiert?), Und implementieren Sie das. –

Antwort

0

Ich glaube nicht die Postleitzahl in ASCII-Umwandlung ist eine gute Idee. Der Grund ist ziemlich offensichtlich. Wenn Sie einen konvertierten ASCII-Wert wie 1210121 (nur ein Beispiel) haben, besteht das Problem darin, als (12) (10) (121) oder (12) (101) (21) zu trennen. Dies scheint eine Menge Arbeit für solch einen kleinen Gewinn zu sein.

Obwohl, könnten Sie nicht SQL verwenden?

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

Hinweis: Sie können die Postleitzahlenwerte aus einer Unterabfrage abrufen.

0

"Postleitzahlen" sind ein völlig willkürliches System, anstatt zu versuchen, dagegen zu kodieren - es sei denn, Ihr Ziel ist es, eine umfassende Postleitzahlenbibliothek zu schreiben - ich würde dringend empfehlen, eine Bibliothek zu finden/zu bezahlen wonach du fragst.

Wenn es die Grundregeln für die britischen Postleitzahlen hilft, sind (soweit ich von denen erinnere ich gesehen habe):

[AZ] {1,2} - 2-stelligen Code die Sortierung darstellt Depot in der Ortschaft \ d - Unterteilung der Zuständigkeit des Sortierdepots [verpflichtend space] \ d [AZ] {2} - alphanumerischer Code für einen zusammenhängenden Bereich von einer Gruppe von 10 bis 100 Adressen belegte

Es wouldn Wundern Sie mich nicht, wenn meine Zusammenfassung falsch/unvollständig ist. Alle Postleitzahlen, die ich gesehen habe, sind in der Form, die ich erwähne, aber ich kenne die tatsächlichen Regeln nicht, also könnte es andere in einem anderen Format geben. Es ist nur enthalten, um eine breite Einschätzung der Natur des Systems zu geben.

0

Die GeoNames Web Service könnte ein guter Anfang sein. Es sollte möglich sein, Postleitzahlen über ihre API zu validieren. Ich denke, Sie können die Datenbank auch exportieren, wenn Sie Ihre eigene Validierungslogik schreiben wollen.