본문 바로가기

컴퓨터/파워빌더

파워빌더 - 주민번호체크


// 주민번호 체크
// 주민번호가 맞는지 틀리는지 검사합니다.
// function 으로 만들어 사용하시면 되겠습니다.

int 함수명(string 주민번호)

int value[13], i, h_mod, h_minus, h_last, last_jumin

jumin = trim(jumin)

// 길이가 반드시 13이어야 함.
if len(jumin) <> 13 then return -1
if not (mid(jumin,7,1)="1" or mid(jumin,7,1)="2") then return -1
last_jumin = dec(Mid(jumin,13,1))
value[1] = dec(Mid(jumin,1,1)) * 2
value[2] = dec(Mid(jumin,2,1)) * 3
value[3] = dec(Mid(jumin,3,1)) * 4
value[4] = dec(Mid(jumin,4,1)) * 5
value[5] = dec(Mid(jumin,5,1)) * 6
value[6] = dec(Mid(jumin,6,1)) * 7
value[7] = dec(Mid(jumin,7,1)) * 8
value[8] = dec(Mid(jumin,8,1)) * 9
value[9] = dec(Mid(jumin,9,1)) * 2
value[10] = dec(Mid(jumin,10,1)) * 3
value[11] = dec(Mid(jumin,11,1)) * 4
value[12] = dec(Mid(jumin,12,1)) * 5
value[13] = 0

for i = 1 to 12
    value[13] = value[13] + value[i]
next

h_mod = mod(value[13],11)
h_minus = 11 - h_mod
h_last = mod(h_minus,10)

if h_last <> last_jumin then
// 틀린주민번호
return -1
else
// 맞는 주민번호
return 0
end if