[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 |
| |
|
|