2012-02-09 33 views
0

我正在使用一些英國郵政編碼數據,這些數據大約在SQL 2008數據庫中的60,000個條目中,需要處理包含郵政編碼的字符串。從經典asp插入空間到特定位置

原始表單數據未經驗證收集,因此郵政編碼以不同格式保存,所以CA12HW也可以是CA1 2HW(正確格式)。

英國郵政編碼的長度和字母/數字組合不同,唯一的例外是所有代碼完成空格數字的字母。

我只關心看代碼的第一部分,即在空間之前。因此,我正在編寫一段代碼,執行以下操作:

1.檢查右側第4個空格。

2.如果沒有空格,請插入第四個右側。

3.將空格處的字符串分開。

到目前爲止,我有:

PostCode = "CA30GX" 
SpaceLocate = InStr(PostCode, " ") 
If SpaceLocate = 0 Then 'Postcode needs a space 

如果唯一不變的是,應該有一個空格右四我怎麼插入一個?

一旦插入空格,我可以拆分代碼以根據需要使用。

PostcodeArray = Split(Postcode, " ") 

現在PostcodeArray(0)等於 「CA3」,PostcodeArray(1)是等於 「0GX」

任何幫助,將不勝感激。

回答

1

您只需重新創建的字符串:

PostCode = Left(PostCode, 3) & " " & Right(PostCode, 3) 
PostcodeArray = Split(PostCode, " ") 

編輯:

PostCode = Left(PostCode, Len(PostCode) - 3) & " " & Right(PostCode, 3) 
+0

感謝Joel,但代碼的左邊部分可能是2,3或4個字符長。有沒有辦法只計算回來並從右側插入空格? – 2012-02-09 15:43:47

+0

@達倫庫克:是的,這將涉及我與Diodeus的答案的混合體。我會發佈一個修改。 – 2012-02-09 15:48:17

+0

完美,作品一種享受。謝謝你的幫助。 – 2012-02-09 15:54:33

0

您可以使用leftright字符串函數來做到這一點:

newCode = left(Postcode,3) & " " & right(Postcode,len(Postcode)-3) 
+1

右不該」 t需要所有的東西。他總是希望3最後,所以它應該是「正確的(3)」。 – 2012-02-09 15:39:33