asp

位置:IT落伍者 >> asp >> 浏览文章

ASP中一个用VBScript写的随机数类


发布日期:2024年08月20日
 
ASP中一个用VBScript写的随机数类

外国人写的一个class这么一点小小的应用除非有特殊需求还没有必要模块化

用asp产生一个随机数

<%

**************************************************************************

CLASS: cRandom

Calls randomize to seed the random number generator

Provides functions for returning ranged random integers or arrays of

ranged random integers

Calling randomize to seed the random number generator at the time the

class is created seemed like a reasonable thing to do

private sub Class_Initialize()

Check the VBScript documentation for the specifics relating

to the Randomize function

Randomize

end sub

Terminate doesnt need to do anything for this class

private sub Class_Terminate()

end sub

**********************************************************************

FUNCTION: RangedRandom

PARAMETER: lowerBound the lowest allowable number to return

PARAMETER: upperBound the highest allowable number to return

RETURNS: A random integer between lowerBound and UpperBound

inclusive

**********************************************************************

public function RangedRandom( lowerBound upperBound )

RangedRandom = CInt((upperBound lowerBound) * Rnd + lowerBound)

end function

**********************************************************************

FUNCTION: RangedRandomArray

PARAMETER: lowerBound the lowest allowable number to return

PARAMETER: upperBound the highest allowable number to return

PARAMETER: arraySize zero based number specifying the size of the array

PARAMETER: duplicates true or false to indicate whether duplicate

resize the tempArray to hold the number of elements passed in the

arraySize parameter

redim tempArray(arraySize)

This is a loop counter set it to

filledElements =

loop until filledElements is equal to the arraySize +

do until filledElements = arraySize +

Call the RangedRandom function with the lowerBound and upperBoundparameters

tempValue = RangedRandom( lowerBound upperBound )

Handle the case where we dont want duplicate values

if duplicates = false then

badValue = false

for i = to UBound(tempArray)

check if the new random value already exists in the array

if it does set the badValue flag to true and break out of the loop

if tempValue = tempArray(i) then

badValue = true

exit for

end if

next

if badValue = false then

tempArray(filledElements) = tempValue

filledElements = filledElements +

end if

else

Handle the case where duplicate values in the array are acceptable

tempArray(filledElements) = tempValue

filledElements = filledElements +

end if

loop

return the array

RangedRandomArray = tempArray

end function

end class

%>

<%

All the code that follows is example code showing the use of the

cRandom class

dim objRandom

dim flip

dim randomArray

dim rowsToTest

dim i j

create an instance of our class

set objRandom = new cRandom

set the number of iterations that we want to test

rowsToTest =

toggle to determine whether or not we set the bgcolor of the table row

flip = true

Start the table

ResponseWrite <table border= cellpadding= cellspacing=>

for j = to rowsToTest

Well alternate the bgcolor of the table rows based on the

value of the flip variable

if flip then

ResponseWrite <tr bgcolor=LightGrey>

else

ResponseWrite <tr>

end if

Call the RangedRandomArray function for testing purposes

randomArray = objRandomRangedRandomArray( )

上一篇:asp 数据库连接代码与数据库关闭代码

下一篇:温故知新:几个经典的ASP应用