Tải bản đầy đủ (.pdf) (10 trang)

Microsoft WSH and VBScript Programming for the Absolute Beginner Part 13 pps

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (347.94 KB, 10 trang )

100
Microsoft WSH and VBScript Programming for the Absolute Beginner, Second Edition
C HALLENGES
1. Change the Math Game to use a different equation and modify the logic required
to adapt the statements that work with the WordPad and Calculator applications.
2. Try using the SendKeys() method to work with other Windows applications, such
as Notepad.
3. Spend some time reviewing VBScript built-in math functions and see if you can
create a new calculator similar to the Square Root calculator.
4. Modify the VBScript template presented earlier in this chapter and adapt it to
suit your personal preferences, and then use it as you begin developing new
VBScripts.
Constants,
Variables, and
Arrays
4
CHAPTER
T
his is the second of five chapters in this book that teaches the funda-
mentals of VBScript. One of the key concepts that you need to understand
when working with VBScript, or any programming language, is how to
store, retrieve, and modify data. This chapter will teach you a number of different
ways to perform these tasks. By the time you have completed this chapter, you
will know how to write scripts that can collect and manipulate data. Specifically,
you will learn how to
• Process data passed to the script at execution time
• Store data that does not change
• Work with data that can change during script execution
• Process collections of related data as a unit
Project Preview:
The Story of Captain Adventure


In this chapter, you will learn how to create a game that builds a comical adven-
ture story based on user input. The game begins by collecting answers to a series
of questions without telling the user how the answers will be used. After all the
information that the script needs is collected, the story is displayed, as shown in
Figures 4.1 through 4.7.
CHAPTER
102
Microsoft WSH and VBScript Programming for the Absolute Beginner, Second Edition
Figure 4.1
The story’s initial
splash screen.
Figure 4.2
The user is the
star of the story.
Figure 4.3
The story begins
anywhere the
user specifies.
Figure 4.4
The user must
specify the object
that provides our
hero with his
superpowers.
Figure 4.5
The user specifies
the story’s
co-star.
Through the development of this story-building game, you will learn a number of important
programming techniques, including how to collect, store, and reference data. In addition,

you will learn how to control the presentation of script output.
Understanding How Scripts View Data
VBScript, like other programming languages, needs a way of storing data so that it can be
accessed throughout the execution of a script. Up to this point in the book, you have seen a
number of examples of how VBScript temporarily stores and references data. Now I’ll
explain how this works.
VBScript supplies a number of different statements
that allow you to define several different types of data.
These VBScript statements are outlined in Table 4.1.
103
Chapter 4 • Constants, Variables, and Arrays
Figure 4.6
Finally, the user
specifies a
magic word.
Figure 4.7
After the script
has all the
information it
needs, the
story is told.
Definition
Data is information that a computer
program collects, modifies, stores,
and retrieves during execution.
104
The Const statement is used to define data that never changes throughout the execution of
a script. For example, in this book you will sometimes see constants used to define strings
that are used to define a standard greeting message in pop-up dialog boxes. The
Dim state-

ment is used to define a variable. A variable stores an individual piece of data such as a name,
number, or date. The
ReDim statement is used to create an array. Arrays are used to store
groups of related information. For example, instead of defining 20 different variables to
store information about 20 different people, a single array could be defined and then infor-
mation about each person can be stored in it. Each of these statements will be examined in
greater detail throughout the rest of this chapter.
Working with Data That Never Changes
Data should be defined within a script according to the manner in which it will be used. If
the script only needs to reference a piece of data that has a value that is known during script
development, then the data can be defined as a constant. An example of a constant is the
mathematical value of pi. Other examples of constants include specific dates of history, the
name of places, and so on.
There are two sources of constants within scripts. First, you can define your own constants
within your scripts. Another option is to reference a built-in collection of readily available
constants provided by VBScript.
Assigning Data to Constants
If you’re going to write a script and know for a fact that you need to reference one or more
values that will not change during the execution of the script, then you can define each
piece of data as a constant. One of the nice features of constants is that, once defined, their
Microsoft WSH and VBScript Programming for the Absolute Beginner, Second Edition
Statement Description
Const Defines a VBScript constant
Dim Defines a VBScript variable or array
ReDim Defines a dynamic VBScript array
TABLE 4.1 VBSCRIPT STATEMENTS T HAT D ETERMINE
H OW D ATA I S D EFINED
value cannot be changed. This prevents their values from being accidentally modified dur-
ing the execution of the script.
If your script attempts to modify the value assigned to a constant after it has

been initially assigned, you will see an “Illegal assignment: ‘XXXXXXXX’ ” error
message when the script executes. XXXXXXXX will reference the name of the
constant. Open your script and do a search on this word and look for the state-
ments that have attempted to modify its value to find the source of the error.
To define a constant within a VBScript, you must use the Const statement. This statement
has the following syntax:
[Public | Private] Const ConstName = expression
Public
and Private are optional keywords and are used
to determine the availability of constants throughout
a script. Defining a constant as
Public makes it avail-
able to all procedures within the scripts. Defining a
constant as
Private makes it available only within the
procedure that defines them.
ConstName is the name of
the constant being defined, and
expression is the
value that identifies the data being defined. To make
sense of all this, let’s look at an example.
‘*************************************************************************
‘Script Name: LittlePigs.vbs
‘Author: Jerry Ford
‘Created: 02/28/02
‘Description: This script demonstrates how to use a constant to create a
‘standardized title bar message for pop-up dialogs displayed by the script
‘*************************************************************************
‘Specify the message to appear in each pop-up dialog title bar
Const cTitleBarMsg = “The Three Little Pigs”

‘Display the story
MsgBox “Once upon a time ”, vbOkOnly, cTitleBarMsg
MsgBox “There were 3 little pigs”, vbOkOnly, cTitleBarMsg
MsgBox “Who liked to build things.”, vbOkOnly, cTitleBarMsg
HINT
105
Chapter 4 • Constants, Variables, and Arrays
Definition
A procedure is a collection of script
statements that are processed as a
unit. In Chapter 7, “Using Procedures
to Organize Scripts,” you will learn
how to use procedures to improve
the overall organization of your
scripts and to create reusable units
of code.
106
In this example, I wrote a small VBScript that tells a very brief story about three little pigs.
The script begins by defining a constant named
cTitleBar. I then used three MsgBox() state-
ments to display the text that makes up the story. The first argument in each
MsgBox() statement
is a text message, which is then followed by a VBScript
MsgBox() constant vbOkOnly. This con-
stant tells VBScript to only display the OK button on the pop-up dialog (a complete listing of
MsgBox() constants is available in Chapter 3, “VBScript Basics.” The last part of each MsgBox()
statement is the cTitleBarMsg constant. VBScript automatically substitutes the value
assigned to the
cTitleBarMsg constant whenever the script executes. Figure 4.8 shows how
the first pop-up dialog appears when the script is executed.

I strongly recommend that you apply a naming convention for your constants
that will uniquely identify them within your scripts. A good naming convention
will make your constants easy to locate and identify and will improve the over-
all readability of your scripts. For example, in this book I will use the following
constant naming convention:
• Constant names begin with the lowercase letter c.
• Constant names describe their contents using English words or easily
identifiable parts of words.
Other examples of tasks related to working with constants include assigning values such as
numbers, strings, and dates. For example, the following statement assigns a value of
1000 to
a constant called
cUpperLimit:
Const cUpperLimit = 1000
To define a text string, you must place the value being assigned within a pair of quotes, like
this:
Const cMyName = “Jerry Lee Ford, Jr.”
HINT
Microsoft WSH and VBScript Programming for the Absolute Beginner, Second Edition
Figure 4.8
By referencing
the value
assigned to a
constant, you can
create a standard
title bar message
for every pop-up
dialog displayed
by your script.
In a similar fashion, you must use a pair of pound signs to store a date value within a con-

stant, like this:
Const cMyBirthday = #11-20-64#
VBScript Run-Time Constants
VBScript supplies you with an abundance of built-in constants. In Chapter 3 you learned
about the constants associated with the
MsgBox() function. For example, the following
VBScript statement executes the
MsgBox() function using the vbOkOnly constant:
MsgBox “Welcome to my VBScript game!”, vbOkOnly
This statement displays a pop-up dialog that contains a single OK button. In addition to
these constants, VBScript supplies constants that help when you’re working with dates and
times. VBScript also supplies a number of constants that can help you manipulate the dis-
play of text output and test the type of data stored within a variable.
Using Date and Time Constants
Table 4.2 lists VBScript Date and Time constants.
107
Chapter 4 • Constants, Variables, and Arrays
Constant Value Description
vbSunday 1 Sunday
vbMonday 2 Monday
vbTuesday 3 Tuesday
vbWednesday 4 Wednesday
vbThursday 5 Thursday
vbFriday 6 Friday
vbSaturday 7 Saturday
vbFirstFourDays 2 First full week with a minimum of 4 days in the new year
vbFirstFullWeek 3 First full week of the year
vbFirstJan1 1 Week that includes January 1
vbUseSystemDayOfWeek 0 Day of week as specified by the operating system
TABLE 4.2 VBSCRIPT D ATE AND T IME C ONSTANTS

108
The following script demonstrates how the vbFriday constant, listed in Table 4.2, can be used
to determine whether the end of the workweek is here:
‘*************************************************************************
‘Script Name: HappyHour.vbs
‘Author: Jerry Ford
‘Created: 10/26/02
‘Description: This script tells the user if it’s Friday
‘*************************************************************************
‘Perform script initialization activities
Dim TodaysDate
‘ Weekday is a VBScript function that gets the day of the week
TodaysDate = Weekday(Date)
If TodaysDate = vbFriday then MsgBox “Hurray, it is Friday. Time “ & _
“to get ready for happy hour!”
You may have noticed the use of the & character in the previous example. The &
character is a VBScript string concatenation operator. It allows you to combine
two pieces of text into a single piece of text.
The first two lines of the script define a variable (we’ll discuss variables in detail in the next
section). The third line assigns a numeric value to the variable. In this case, the script used
the VBScript
Weekday() function to execute the VBScript Date() function. The Date() func-
tion retrieves the current date from the computer. The
Weekday() function then provides a
numeric value to represent the weekday for the date. Table 4.2 provides a list of the possible
range of values in its Value column. If the current day of the week is Friday, then the value
returned by the
Weekday() function will be 6. Because the vbFriday constant has a value of 6,
all that has to be done to determine if it is Friday is to compare the value returned by the
Weekday() function to the vbFriday. If the two values are equal, a pop-up dialog displays the

message
“Hurray, it is Friday. Time to get ready for happy hour!”.
Using String Constants
Another group of constants that you may find useful are the VBScript string constants listed
in Table 4.3.
TRICK
Microsoft WSH and VBScript Programming for the Absolute Beginner, Second Edition
109
Chapter 4 • Constants, Variables, and Arrays
Using the constants shown in Table 4.3, you can control the manner in which output text is
displayed. For example, take a look at the following script:
‘*************************************************************************
‘Script Name: MsgFormatter.vbs
‘Author: Jerry Ford
‘Created: 02/28/02
‘Description: This script demonstrates how to use VBScript string constants
‘to control how text messages are displayed.
‘*************************************************************************
‘Specify the message to appear in each pop-up dialog title bar
Const cTitleBarMsg = “The three little pigs”
‘Specify variables used by the script
Dim StoryMsg
‘Specify the text of the message to be displayed
Constant Value Description
vbCr Chr(13) Executes a carriage return
vbCrLf Chr(13) and Chr(10) Executes a carriage return and a line feed
vbFormFeed Chr(12) Executes a form feed
vbLf Chr(10) Executes a line feed
vbNewLine Chr(13) and Chr(10) Adds a newline character
vbNullChar Chr(0) Creates a 0 or null character

vbNullString String with no value Creates an empty string
vbTab Chr(9) Executes a horizontal tab
vbVerticalTab Chr(11) Executes a vertical tab
TABLE 4.3 VBSCRIPT STRING C ONSTANTS

×