VB 製作一個身分證字號驗證器

延續:自行計算身分證字號

順便更正…
昨天有人跟我說….
我昨天的規則有誤
((我大驚 >< 用了好幾年 都不知道有沒有錯
他說 I 以後會有錯誤 ….
我也搞不清楚 因為我從來沒用到 I 以後的
不過
他都提出了
我們就接受吧

以下是 從 A ~ Z 對應的數字
10, 11, 12, 13, 14, 15, 16, 17, 34, 18, 19, 20, 21, 22, 35, 23, 24, 25, 26, 27, 28, 29, 32, 30, 31, 33

就自己換成這樣吧 XD

這次…
交大家一個簡單的製作程式
VB是算減單程式語言
所以 我也隨隨便便的寫了一下
((我沒有用到太多函數 怕大家狂問我函數用法 所以 就用最古老的囉

第1步:先建立一個 Function 事件

是件名稱就…
entono(key)
記得 後面一定要有 (key)

第2步:宣告常數

Dim key1
‘英文字轉換後的數字(兩位數)

Dim key2
‘總和

第3步:判斷 key 的字數

剛剛忘記說
key是要輸入身分證字號 後面較說明要怎麼帶入

身分證字號的字數是 10 個字
若不是10個字就離開 Function
並回應 字數不對

第4步:認識函數

str是字串
V=LCase(str) 將字串 str 裡面的大寫字母轉成小寫
Mid 函數:讀取字串 X 中間的字元
V=Mid(str,n,m) 由 str 的第 n 個字元起,讀取m 個字元

第5步:判斷第一個字母該換成的數字

這裡我用最古老的作法
If LCase(Mid(key, 1, 1)) = “a” Then key1 = 10
假如是 a 就 讓key1為10
..
.
.
以此類推

第6步:判斷第一字母是否為英文

因為上面都把英文轉換成數字了
若沒轉換的 就不是英文字囉

第7步:判斷性別

性別只有 1 或 2
若不是1或2就出現錯誤
且離開 Function

第8步:計算字串

這應該不用說了

第9步:判斷是否正確並修正

假如總和最後一碼不是0 ((是0的是正確
假如原本的最後一碼減去總和的最後一碼小於0 ((大於0 相差就是正確的最後一碼
假如 10減去 總和的最後一碼 大於0
大於0 應該是不存在的 所以會顯示莫名錯誤
不是大於0就繼續
10 減去 總和最後一碼 加上 原本的最後一碼
這個就是答案

說明的很亂
也許判斷可以在簡單易點吧 XD 呵呵

第10步:使用自訂函數

在事件中史要用到
entono(key)
就可以了
把裡面的 key 換成身分證字號
就可以囉 ^^

第11步:下載原碼

載點:這裡
解壓縮密碼:skybox.pp.ru

第12步:更改為 VBS 腳本

載點:這裡
解壓縮密碼:skybox.pp.ru