sub_title
 ASP
제   목 난수를 이용한 쿠폰번호(알파벳+숫자) 생성
작성자 다자래 등록일 2007-08-14 23:28:29 조회수 215,424

[ASP 난수를 이용한 쿠폰번호(알파벳+숫자) 생성]

난수 생성함수 두 가지입니다. 함수1)은 생성시킬려고 하는 난수의 값들을 배열에 담아서 처리하는 조금용감
무쌍(?)한 방법으로 손가락이 좀 고생합니다. 영타 실력을 늘리는데는 좀 도움이 됩니다.

함수2)는 조금 더 유려해 보일 뿐만 아니라 함수의 인자가 두개나 됩니다. 첫번째 인자는 생성시킬려는 난수
의 길이입니다. 그럼 두번째 인자는 무엇일까요? 함수의 내부를 조금만 들여다 보면 Default로 생성시킬려
는 난수의 값들을 대체한다는 것을 알수 있습니다.

결국 함수2)가 좀더 유연성있게 사용할 수 있는 함수라는 결론이 나옵니다.
그럼 이런 난수 생성함수가 어디에 쓰일 수 있을까요? 쿠폰관련 이벤트를 진행하는 웹사이트라면 아주 요긴하
게 쓰일 수 있습니다. 제가 전에 근무하던 직장 중 한곳이 매월 이벤트에서 쿠폰이벤트가 빠진적이 손가락에
꼽을 정도 였습니다.



함수1)

<%

Function MyRandom( couponLength )

Dim couponValue(35)

couponValue(0) = "A"
couponValue(1) = "B"
couponValue(2) = "C"
couponValue(3) = "D"
couponValue(4) = "E"
couponValue(5) = "F"
couponValue(6) = "G"
couponValue(7) = "H"
couponValue(8) = "I"
couponValue(9) = "J"
couponValue(10) = "K"
couponValue(11) = "L"
couponValue(12) = "M"
couponValue(13) = "N"
couponValue(14) = "O"
couponValue(15) = "P"
couponValue(16) = "Q"
couponValue(17) = "R"
couponValue(18) = "S"
couponValue(19) = "T"
couponValue(20) = "U"
couponValue(21) = "V"
couponValue(22) = "W"
couponValue(23) = "X"
couponValue(24) = "Y"
couponValue(25) = "Z"
couponValue(26) = "0"
couponValue(27) = "1"
couponValue(28) = "2"
couponValue(29) = "3"
couponValue(30) = "4"
couponValue(31) = "5"
couponValue(32) = "6"
couponValue(33) = "7"
couponValue(34) = "8"
couponValue(35) = "9"

'ex) idvalue = Int(( 100-1+1 )*Rnd + 1 ) "1부터 100까지의 난수발생
'ex) idvalue = Int((50-2+1 ) *Rnd+2 ) "2부터 50까지의 난수발생
'ex) idvalue = Int((35-0+1 )*Rnd+0 ) "0부터 35까지의 난수 발생


'couponLength 길이 만큼의 쿠폰번호를 만든다
For i=1 To couponLength
Randomize '난수 발생 초기화
idvalue=Int((35- 0 + 1) * Rnd + 0)
couponNo = couponNo & couponValue(idvalue)
Next

MyRandom = couponNo '리턴값

End Function

Response.Write "쿠폰넘버: " & MyRandom( 16 ) '16자리의 쿠폰번호를 생성한다

%>

함수2)

<%

Function MyRandom( couponLength, couponString )

Const defaultString = "ABCDEFGHIJKLMNOPQRSTUVXYZ0123456789"
Dim nCount, couponNo, nNumber, nLength

Randomize '초기화

If couponString = "" Then
couponString = defaultString
End If

nLength = Len( couponString )

For nCount = 1 To couponLength
nNumber = Int((nLength * Rnd) + 1)
couponNo = couponNo & Mid( couponString, nNumber, 1 )
Next

MyRandom = couponNo '리턴값

End Function

Response.Write "쿠폰넘버: " & MyRandom( 16, "" ) '16자리의 쿠폰번호를 생성합니다.
'두번째 인자의 값에 임의의 문자를 넘겨주면 그 문자값으로 쿠폰번호를 생성합니다.

%>

 

작성자: 다자래(mfcchang@naver.com)
웹제작 토탈 커뮤니티 http://www.webmadang.net

 
1
    
 
0
        list
 
※ 짧은 댓글일수록 예의를 갖추어 작성해 주시기 바랍니다.
line
reply cancel
 
번호 제목 글쓴이 추천 조회 날짜
write
button [1] [2] [3] [4]