|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
Ruey
註冊時間: 2003-03-12 文章: 1698 來自: tunglo
第 1 樓
|
發表於: 星期三 三月 12, 2003 6:13 pm 文章主題: 身分證檢查 |
|
|
/****************/
/* 身份証號檢查 */
/****************/
/*
(一)長度:對照表
字母 A B C D E F G H J K L M N
編號 10 11 12 13 14 15 16 17 18 19 20 21 22
字母 P Q R S T U V X Y W Z I O
編號 23 24 25 26 27 28 29 30 31 32 33 34 35
(二)計算公式
1.( A1轉換後,身份証號變成 11 碼 ,前二碼即為 L1,L2)
A 1 2 3 4 5 6 7 8 9
1 0
2.各數字分別乘:1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1
(三)範例 G220903332
位數 1 2 3 4 5 6 7 8 9 10 11
編號 1 6 2 2 0 9 0 3 3 3 2
* 1 9 8 7 6 5 4 3 2 1 1
乘積 1 54 16 14 0 45 0 9 6 3 2
1+ 54+16 +14 +0+ 45+0+ 9+ 6+ 3+ 2 = 150
因 150 能被 10 整除,故身分證統一編號正確。 |
|
回頂端 |
|
|
garfield Site Admin
註冊時間: 2003-01-30 文章: 2158
第 2 樓
|
發表於: 星期四 三月 13, 2003 7:40 pm 文章主題: Ruey |
|
|
Ruey 你真是熱心, "有你真好". |
|
回頂端 |
|
|
盧明貴
註冊時間: 2003-04-08 文章: 5 來自: 台灣
第 3 樓
|
發表於: 星期二 四月 08, 2003 2:29 pm 文章主題: |
|
|
tid="ABCDEFGHJKLMNPQRSTUVXYWZ"
Store space(10) TO idno
Store space(1) TO bbb,ccc,fff
@ 7,30 say "身份證字號:" get idno pict "@! a999999999"
Read
fff=left(idno,1)
bbb=substr(idno,2,1)
If fff="I" .or. fff="O"
@ 1,1 say '身份證字號錯誤'
Else
If bbb<>"1" .or. bbb<>"2"
iii=9
aaa=0
Do while iii>=2
aaa=aaa+val(substr(idno,iii,1))*(10-iii)
iii=iii-1
If iii=1
Exit
Endif
Enddo
ccc=ltrim(str(at(fff,tid)+9))
aaa=aaa+val(left(ccc,1))*1+val(right(ccc,1))*9
ddd=0
ddd=mod(aaa,10)
If ddd<>0
ddd=10-ddd
Endif
Store space(1) to ggg
ggg=str(ddd,1)
If ltrim(ggg)<>right(idno,1)
@ 1,1 say '身份證字號錯誤'
Else
@ 1,1 say '身份證字號正確'
Endif
Else
@ 1,1 say '身份證字號錯誤'
Endif
Endif |
|
回頂端 |
|
|
盧明貴
註冊時間: 2003-04-08 文章: 5 來自: 台灣
第 4 樓
|
發表於: 星期二 四月 08, 2003 2:34 pm 文章主題: |
|
|
這支程式是以前在DBaseIII上寫的,拿來Foxpro照樣可以用! |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|