text: Wednesday, September 11, 2024
  
  # ASP Primer: Functional VBScript
  
  Use these bookmarks to jump around the tutorial:
  
  You’ve gotten a handle on the conditionals. You can do a loop. Now it’s time to learn about some of the built in functions that make life a whole lot easier.
  
  And now for my
  disclaimer. Many of the functions that we talk about below will have additional
  features that we will not cover in this short tutorial. If you would like more
  information on the functions or any of the other topics we cover in this series,
  be sure to check out Microsoft’s online documentation at
  http://msdn.microsoft.com.
  
  ## Do the Math
  
  Even though you probably
  won’t be doing much serious math in most of your ASP applications, it’s still a
  good idea to review some of the more common math functions. Being that as it
  may, here are the more common VBScript mathematical functions:
  
   Mathematics: ABS( ) This stands for ABSolute value. An absolute value, if you remember from math class, is simply taking any number and eliminating the sign so that any number returned here is essentially a positive number. . INT( ) This function will probably get more use than any of the other mathematical functions we list here with maybe the exception of the randomizing functions below. What INT does is simply turn any decimal number into an integer (whole) number. It does this by whacking off everything after the decimal point. That means there is no rounding going on here, it simply throws away the fractional part of any number that you give it. For example, if you give INT( ) the number 7.694, it will return then number 7. LOG( ) This function returns the natural logarithm of the number that you give it. Trigonometry: SIN( ) I’m sure you already guessed that this is sine. Now, I’m not going to go into detail on the uses of sine because you probably already know what sine is used for. If you don’t, you may want to see if you can dig up one of your old math books before you start plugging in this function. COS( ) This function returns the cosine of the angle that you give it. TAN( ) This function returns the tangent of the angle that you give it. ATN( ) This function returns the arctangent of the number that you give it. Miscellaneous: RANDOMIZE This particular math function does not actually return a result. What Randomize does is set a seed for random number generation. In short, it gets the ball rolling so that you can generate random numbers. RND( ) This is the function that actually generates a random number. Unlike our other math functions above, you don’t actually give this function a number to crunch. To see how RANDOMIZE and RND( ) work hand-in-hand, check out our practical example below.
  
  Before we get into the
  randomizing functions, let’s take a second to look at how the other mathematical
  functions work. Using the mathematical functions above is quite simple. Here’s
  an example of how to use TAN( ):
  
  decTangent =
  TAN(
  intAngle)
  
  It’s as simple as giving
  the function a number to crunch and letting it do the rest. The above example
  applies to pretty much every function that we mentioned above with the exception
  of the randomizing functions.
  
  RANDOMIZE and
  RND( )
  are a bit different. In order to effectively demonstrate them in use
  I’ve come up with this installments practical example, a randomly displayed
  
  <% Option
  Explicit %>
  
  <% ‘ Banner Ad
  Rotation %>
  
  <% Dim decRandomNumber %>
  
  <% RANDOMIZE %>
  <% decRandomNumber = RND( ) %>
  
  <% If decRandomNumber > .5 then %>
  
  <IMG width="468" height="60" src="BannerAd1.jpg">
  
  </a>
  
  <% Else %>
  
  <IMG width="468" height="60" src="BannerAd2.jpg">
  
  </a>
  
  <% End If %>
  
  Now for an explanation
  of how the code above works. First, we declare our variable that we are going to
  use to store our random number, decRandomNumber.
  
  Next we use the
  RANDOMIZE
  function. This function sets the randomizing generator in motion
  by seeding it. (Random number generators work by using a complex algorithm that
  requires a seed number to kick-start the process. That seed number can be taken
  any number of ways but usually involves a combination of the current date and
  time.) You only need to use the RANDOMIZE function once on each ASP page
  since it simply gets the process started. It can be used more than once but it
  isn’t necessary.
  
  The next function that
  you will see is RND( ). RND( ) is the actual function that goes
  out and retrieves your random number. We set our decRandomNumber variable
  equal to the RND( ) function. This will set decRandomNumber equal
  to a random number between 0 and 1.
  
  Once we have our random
  number set, it is a simple process of checking the number to see if it is
  greater than .5 or not. That is where the If .. Then statement comes in. If our
  number is greater than .5 then we display BannerAd1, otherwise we display
  
  Right now each ad will
  be displayed 50% of the time. To give more weight to one ad over another just
  change how you make the comparison. For example, if you change the first part of
  the If .. Then to say decRandomNumber > .75, BannerAd1 will only be
  displayed 25% of the time. You can also add additional banner ads by adding in
  an ElseIf or two. (Using the If .. Then, ElseIf and Else statements can be found
  here.)
  
  ## Messing with Strings
  
  Let’s move on to some
  string functions. You will probably find yourself using string functions
  infinitely more than the mathematical functions above. The reason is that most
  of the data you interact with on the web is in the form of strings, i.e.
  people’s names, addresses, web URL’s, e-mail addresses, etc.
  
  Here are some of the
  most commonly used string functions. I have tried to give an easy to understand
  example of each function. We’ll discuss the practical applications of some of
  the functions later. Here they are:
  
   Changing Strings: LCASE( ) This function does exactly what you might think. It takes any string it gets and makes it all lower case. Example: Doing LCASE("Hello World!") will give you "hello world!" back. UCASE( ) This function is, of course, the polar opposite of LCASE( ). UCASE( ) changes any given string to all upper case. Example: Taking the example above, doing UCASE("Hello World!") will give you back "HELLO WORLD!". LTRIM( ) This function gets rid of extra spaces on the left side of any string by just chopping them off. Example: If you give LTRIM( ) the string "     There are 5 extra spaces to the left.", it will return a string like this "There are 5 extra spaces to the left." RTRIM ( ) This function does the opposite of LTRIM( ). It removes any extra spaces from the right side of any string. Example: The string "There are 5 spaces to the right of this string.     " will be returned as "There are 5 spaces to the right of this string.". TRIM( ) TRIM( ) then is a combination of the two above. It will chop off any extra spaces before and after a given string. Example: The string "     There are 5 spaces before and after this string.     " will return a result of "There are 5 spaces before and after this string.". REPLACE( ) Learn this one well. REPLACE( ) allows you to replace any given set of characters in a string with another set of characters. Example: This function is a bit more complicated than the rest of the string functions above. It requires more information before it can do its thing. So, with that said, here is a some code to illustrate exactly how the function works: strMySentence = "I like ice cream!" strNewSentence = REPLACE(strMySentence,"like","love") The result of the code above would be that strNewSentence would now equal to "I love ice cream!". REPLACE( ) first wants to know what string it is to perform the replace on, then what word or set of characters it is looking for, and lastly what word or set of characters it is swapping in when it finds a match. If there is more than one match within a string it will replace all of the matches it finds. All About the String: LEN( ) This is one of the few string functions that doesn’t actually return a string. Instead it returns the length of any given string as an integer. In other words, it counts the number of characters, including spaces, and gives you the total. Example: If you do LEN("Test String") you will get the number 11 as the result. LEFT( ) This function allows you to get a selected section of a string. It is done by giving the function the string you want a piece of and the length of that piece. It then counts from the left to a specified length and returns that piece of the string. Example: LEFT("I love ASP!",6) would return the string "I love", which is 6 characters from the left including the space. RIGHT( ) This function does the exact same process as LEFT( ) except from the right. Example: RIGHT("I love ASP!",4) would return the string "ASP!", which is 4 characters from the right. MID( ) As you might expect, MID( ) allows you to take a string out of the middle of another string. For this particular function you will need a starting point and the number of characters that you want. Example: MID("I love ASP!",3,4) will give you "love" as the result. It starts at the third character "l" and snags it plus the next 3 characters for a total of 4. INSTR( ) This function allows you to search for a string within a string. It works much like REPLACE( ) does in that you give it a string to search and a string to search for. The result it returns is the character number of the beginning of the match, if it finds one. If it doesn’t find a match it will return a 0. Example: INSTR("I love ASP!","love") will return the integer 3. If you try INSTR("I love ASP!","like") it will return the integer 0. Here’s an extra little tip about INSTR( ), INSTR("I love ASP!","asp",1) will ignore case-sensitivity. In other words, the number one at the end of the function tells it to find a match ignoring case. The default is to find an exact match. The result of the example above would be 8. The result of this example, INSTR("I love ASP!","asp") would be 0, no match found.
  
  Now that you know some
  of the string functions that you have available to you, I thought it might be a
  good idea to give you some common uses for them.
  
  UCASE( ) and
  LCASE( )
  : These are very useful in eliminating case-sensitivity when you are
  making comparisons. For example, let’s say someone enters an email address on a
  form to look up their account information. You don’t want to tell them you can’t
  find their account if they accidentally capitalized a character in their email.
  So, to eliminate that possibility you might want to take the email address they
  input on the form and transform it to all lower case with the LCASE( )
  function before you make a comparison to the accounts in your database.
  
  TRIM( ), LTRIM(
  )
  and RTRIM( ): These functions are excellent for "cleaning up" a
  user’s input. As a rule, I always use TRIM( ) on all input I get from
  users. I like to eliminate any extra spaces up front so that they don’t cause me
  any problems later. I very rarely use LTRIM( ) and RTRIM( ).
  
  REPLACE( ): This
  is one of the handiest functions around. You will find it very necessary for
  eliminating problems when interacting with a database using SQL. You will also
  find it very useful when trying to translate carriage returns into breaks (<BR>)
  in HTML. I will show you specific examples of how REPLACE( ) is a
  necessity when we get to some of the database stuff later.
  
  LEN( ): This
  function I find most useful when determining whether a user’s input is too long
  or too short. If you are storing user input into a database you will often have
  size limitations to contend with. This function can check those limits before
  you generate an error writing to your database. It is also very useful for
  parsing out search strings (we’ll get to that later).
  
  LEFT( ),
  RIGHT( )
  and MID( ): These functions are great for chopping up user
  input into single words or phrases. They are most handy in cooperation with
  LEN( )
  when separating out words in a user’s search string. I sometimes use
  LEFT( ) to cut off user input that is too long.
  
  INSTR( ): I find
  this function most useful in searching for illegal words. For example, let’s say
  your ASP page is posting user messages to a bulletin board. The bulletin board
  is family oriented and you want to ensure that there is no bad language in any
  of the postings. You can use INSTR( ) to deny messages where you find
  offensive language.
  
  ## Nailing Down a Date & Time
  
  As if you haven’t had
  your fill of functions yet, here are some common functions used for manipulating
  date and time:
  
   DATE( ) This function gets the current date. TIME( ) This function gets the current time. NOW( ) This function gets the current date and time. MONTH( ) This function pulls the month out of any date/time string variable and returns it as a integer. DAY( ) This function pulls the day out of any date/time string variable and returns it as a integer. YEAR( ) This function pulls the year out of any date/time string variable and returns it as a integer. HOUR( ) This function pulls the hours out of any date/time string variable and returns it as a integer. MINUTE( ) This function pulls the minutes out of any date/time string variable and returns it as a integer. SECOND( ) This function pulls the seconds out of any date/time string variable and returns it as a integer. WEEKDAY( ) This function is one of the more handy ones. It takes any date given it and tells you what day of the week it is. It does this by returning an integer number that indicates the day of the week. If a 1 is returned it is a Sunday, a 2 indicates a Monday, etc. DATEDIFF( ) This function allows you get the difference between two days. You can even select how the difference is calculated, i.e. days, hours, minutes, etc. Here’s how it works:   dateDay1 = "1/1/2002"   DATEDIFF("d",DATE( ),dateDay1) The example above compares today’s date with the first day of 2002 and gives us the number of days between them. The "d" lets the function know to calculate the difference in days. We could have also used "h" for hours, "m" for months, "s" for seconds, etc. to calculate the difference. DATEADD( ) As you would imagine, this function adds two dates together and gives you the result. This function needs some very specific information in order to complete its task. It must know the date it needs to add to, the type of time that is being added (i.e. days, hours, minutes, etc.), and it needs to know how much time to add. Here is an example:   DATEADD("h",12,NOW( )) The function above will add 12 hours ("h") to today’s date and time. The result will be a new date and time 12 hours from now.
  
  You probably won’t find
  yourself manipulating dates and times as much as strings but you will use these
  functions quite a bit. Here are some practical uses for the functions above:
  
  DATE( ), TIME(
  )
  and NOW( ): You will be surprised how often you need to get the
  current date and time. I have used these functions for everything from
  displaying the current day to time stamping data that I send to a database. You
  will probably find DATE( ) and NOW( ) the most useful.
  
  MONTH( ), DAY(
  )
  , HOUR( ), MINUTE( ), YEAR( ), SECOND( ): To be
  completely honest with you, I will rarely use any of these functions. It is
  useful, on occasion, to get the month, day or sometimes year out of a date but I
  rarely have used the HOUR( ), MINUTE( ) and SECOND( )
  functions.
  
  WEEKDAY( ): This
  is a very handy function for displaying a more full and formal date. I actually
  use this one quite a bit whenever I need to display a complete date.
  
  DATEDIFF( ) and
  DATEADD( ): These functions are both very commonly used. I use
  DATEDIFF( )
  mostly for determining whether or not to display some data that
  has an expiration attached to it. For example, displaying a special message
  about a current sale until the sale expires. I use the DATEADD( )
  function for determining expiration dates. It is quite handy quickly calculating
  expiration dates for cookies and the like.
  
  ## What’s Next?
  
  That’s it! This
  concludes your crash course in VBScript. Now, there is much more to VBScript
  than we have talked about up to this point but you have the basics. We will
  cover additional features of VBScript as we come across them later in this
  series.
  
  Next it’s on to some
  real ASP. You’ll finally begin putting together the pieces and start creating
  some full-blown ASP applications.
  
  In the next part of this series
  we will:
  
  • Talk to the user with
  Response.Write
  
  • Give directions to the
  user with Response.Redirect
  
  • Store info about the
  
  ### Get the Free Newsletter!
  
  Subscribe to Developer Insider for top news, trends & analysis
metadata: {"found_math": false, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 0, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0, "katex": 0, "math-container": 0, "wp-katex-eq": 0, "align": 0, "equation": 0, "x-ck12": 0, "texerror": 0}