ASP 101 - Active Server Pages 101 - Web04
The Place ASP Developers Go!

Please visit our partners


Windows Technology Windows Technology
15 Seconds
4GuysFromRolla.com
ASP 101
ASP Wire
VB Forums
VB Wire
WinDrivers.com
internet.commerce internet.commerce
Partners & Affiliates














ASP 101 is an
internet.com site
ASP 101 is an internet.com site
IT
Developer
Internet News
Small Business
Personal Technology

Search internet.com
Advertise
Corporate Info
Newsletters
Tech Jobs
E-mail Offers

ASP 101 News Flash ASP 101 News Flash





ASP Source Code:
<%
' Constant representing the number of images.
' This is used in Methods 1 and 2.
Const NUMBER_OF_IMAGES = 4
' Initialize the random number generator.  This is the
' command that tells the computer to give us psedo-random
' numbers when we use Rnd later.
Randomize
' Note:
' The generic formula for generating a random number in a
' range is:
'
' Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
'
' I've simplified this where possible, but all the random
' generation below is based upon this basic form.
'==========================================================
' Method #1: This is probably the easiest and most
' straight-forward approach.  We name our image files so
' that they're all the same except for one part of the
' name.  This part is then assigned a set of sequential
' numbers.
'
' IE: ad1.gif
'     ad2.gif
'     ad3.gif
'     ad4.gif
'
' This way by simply generating a random number in the
' appropriate range we can easily associate it with a
' particular image.
'==========================================================
Dim intImageNumber ' A var to store our randomn number
' Pick a random number between 1 and NUMBER_OF_IMAGES (4)
intImageNumber = Int((NUMBER_OF_IMAGES * Rnd) + 1)
' Show the corresponding image:
%>
<h3>Method #1:</h3>
<img
src    = "./rndimgs/ad<%= intImageNumber %>.gif"
width  = "150"
height = "75"
alt    = "Random Image"
/>
<br />
<%
'==========================================================
' Method #2: This method is similar to the first except
' that the options to choose from are hard coded into the
' page explicitly.  This allows a few things.  First, the
' image names can be whatever you'd like them to be.
' Second, it's easy to associate different parameters with
' the different images as illustrated with the width,
' height, and alt properties below.
'==========================================================
Dim intImageIdToShow  ' Random Id we generate
Dim arrImages(3, 3)   ' Array to hold image parameters
' Set up our 2D array with the values
' In my setup the first number is basically representing
' an image id and each image has an associated filename,
' width, height, and alt tag text.
arrImages(0, 0) = "ad1.gif"
arrImages(0, 1) = 150
arrImages(0, 2) = 75
arrImages(0, 3) = "Random Image #1"
arrImages(1, 0) = "ad2.gif"
arrImages(1, 1) = 150
arrImages(1, 2) = 75
arrImages(1, 3) = "Random Image #2"
arrImages(2, 0) = "ad3.gif"
arrImages(2, 1) = 150
arrImages(2, 2) = 75
arrImages(2, 3) = "Random Image #3"
arrImages(3, 0) = "ad4.gif"
arrImages(3, 1) = 150
arrImages(3, 2) = 75
arrImages(3, 3) = "Random Image #4"
' Generate a random number based on the bounds of the
' array we just set up.  Notice the ", 1" in the LBound
' and UBound calls.  This indicates I want to use the
' bounds from the first dimension.  It's the default so I
' could have left it off, but I thought I should include
' it for reference in case you decide to use the array
' differently then I did and need the bound from a
' different dimension.
intImageIdToShow = Int((UBound(arrImages, 1) - _
	LBound(arrImages, 1) + 1) * Rnd + LBound(arrImages, 1))
' Show the image:
%>
<h3>Method #2:</h3>
<img
src    = "./rndimgs/<%= arrImages(intImageIdToShow, 0) %>"
width  = "<%= arrImages(intImageIdToShow, 1) %>"
height = "<%= arrImages(intImageIdToShow, 2) %>"
alt    = "<%= arrImages(intImageIdToShow, 3) %>"
/>
<br / >
<%
'==========================================================
' Method #3: This method is the most work for the server,
' but it allows you to simply drop a new image into the
' image directory specified and it will automatically
' start showing it randomly with the others.
'==========================================================
' Set our random images pickup directory.  All files in
' this direcotory will be randomly displayed so it's
' important that the directory contain only image files
' that you want to display.  Non-image files and files
' that shouldn't be displayed should not be placed into
' this directory.
Const IMGS_DIR = "./rndimgs/"
' Variables for our FileSystemObject objects
Dim objFSO, objFolderObject, objFileCollection, objFile
' A pair of integers for our random image selection
Dim intFileNumberToUse, intFileLooper
' A "handle" to the file we choose to use
Dim objImageFileToUse
' A variable to build our image tag
Dim strImageSrcText
' Lets see what's in the directory:
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolderObject = objFSO.GetFolder(Server.MapPath(IMGS_DIR))
Set objFSO = Nothing
Set objFileCollection = objFolderObject.Files
Set objFolderObject = Nothing
' Get a count of files and use it to generate a random
' number from 1 to the count.
intFileNumberToUse = Int(objFileCollection.Count * Rnd) + 1
' Set up loop control so we exit when we get to the random
' file number we just picked.
intFileLooper = 1
For Each objFile in objFileCollection
	If intFileLooper = intFileNumberToUse Then
		' Get a "handle" on the appropriate file
		Set objImageFileToUse = objFile
		Exit For
	End If
	intFileLooper = intFileLooper + 1
Next
Set objFileCollection = Nothing
' Build our img src tag text
strImageSrcText = IMGS_DIR & objImageFileToUse.Name
Set objImageFileToUse = Nothing
' Show the image:
%>
<h3>Method #3:</h3>
<img
src    = "<%= strImageSrcText %>"
width  = "150"
height = "75"
alt    = "Random Image"
/>
<br / >
<%
'==========================================================
' Interesting Footnote:
' I always used to do things in this order because it
' seemed to make sense to me:
'
' Get FSO
'  Get Folder Using FSO
'   Get File Collection Using Folder
'    Get File Using File Collection
'     Do File Stuff
'    Release File
'   Release File Collection
'  Release Folder
' Release FSO
'
' Notice in the code above I do this however:
'
' Get FSO
' Get Folder Using FSO
' Release FSO
' Get File Collection Using Folder
' Release Folder
' Get File Using File Collection
' Release File Collection
' Do File Stuff
' Release File
'
' Notice the difference... in the first method I have 4
' objects allocated at one point while in the second
' method I never have more then 2 objects open at once!
'
' It seems trivial, but the easiest way to increase ASP
' performance is to get in and out as fast as possible
' and this type of code helps accomplish that.
'==========================================================
%>

Back the the Sample Output

Back to the Sample Index


Home |  News |  Samples |  Articles |  Lessons |  Resources |  Forum |  Links |  Search |  Feedback

Internet.com
The Network for Technology Professionals

Search:

About Internet.com

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers