延續:自行計算身分證字號
順便更正…
昨天有人跟我說….
我昨天的規則有誤
((我大驚 >< 用了好幾年 都不知道有沒有錯
他說 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步:下載原碼
第12步:更改為 VBS 腳本