VBScript - PowerPoint PPT Presentation

1 / 63
About This Presentation
Title:

VBScript

Description:

Dani Vainstein. 2. What we learn last session? VBScript string manipulation. VBScript string math. ... Dani Vainstein. 5. OOP Model. Abstractions ... – PowerPoint PPT presentation

Number of Views:438
Avg rating:3.0/5.0
Slides: 64
Provided by: danivai
Category:
Tags: dani | vbscript

less

Transcript and Presenter's Notes

Title: VBScript


1
VBScript
  • Session 11

2
What we learn last session?
  • VBScript string manipulation.
  • VBScript string math.
  • VBScript date manipulation.
  • VBScript Formatting Strings.

3
Subjects for session 11
  • The OOP model.
  • Objects.
  • COM objects.
  • Set statement.
  • Nothing keyword
  • CreateObject function.
  • New keyword.
  • FileSystem object.

4
OOP Model
  • Abstractions
  • Encapsulation
  • Polymorphism
  • Inheritance
  • Reusabillity

5
OOP ModelAbstractions
  • The ability for a program to ignore some aspects
    of the information it's manipulating, i.e. the
    ability to focus on the essential.
  • An abstract class cannot be instantiated.
  • An abstract class may contain abstract methods
    and accessors.
  • An abstract class can be partially implemented,
    or not at all implemented.
  • Abstract classes are useful when creating
    components because they allow you specify an
    invariant level of functionality in some methods,
    but leave the implementation of other methods
    until a specific implementation of that class is
    needed.

6
OOP ModelEncapsulation
  • The ability for the program to hide information
    about the implementation of a module from its
    users, i.e. the ability to prevent users from
    breaking the invariants of the program.
  • The term encapsulation refer to Information
    hiding in software.

7
OOP ModelPolymorphism
  • Polymorphism is the ability for classes to
    provide different implementations of methods that
    are called by the same name.
  • Polymorphism allows a method of a class to be
    called without regard to what specific
    implementation it provides.

8
OOP ModelPolymorphism
  • You might have a class named Road which calls the
    Drive method of an additional class.
  • This Car class may be SportsCar, or SmallCar, but
    both would provide the Drive method.
  • Though the implementation of the Drive method
    would be different between the classes, the Road
    class would still be able to call it, and it
    would provide results that would be usable and
    interpretable by the Road class.

9
OOP ModelInheritance
  • Defining classes as extensions of existing
    classes.
  • In computer science, the term inheritance may be
    applied to a variety of situations in which
    certain characteristics are passed on from one
    context to another.
  • The term originates with the biological  concept
    of a parent passing on certain traits to a child

10
Shape
Dimensions Flanks
Area
Perimeter
Circle
Radious pi
Rectangle
Triangle
Height Width
angles
3D
depth
11
OOP ModelReusabillity
  • reusability is the likelihood a segment of
    structured code can be used again to add new
    functionalities with slight or no modification.
  • Reusable code reduces implementation time,
    increases the likelihood that prior testing and
    use has eliminated bugs and localizes code
    modifications when a change in implementation is
    required.
  • Subroutines or functions are the simplest form of
    reuse.
  • A chunk of code is regularly organized using
    module or namespace.
  • Proponents claim that objects and software
    components offer a more advanced form of
    reusability.

12
Object Model
  • Object.
  • Collection.
  • Container object.
  • Method.
  • Event.
  • Property.
  • Attribute.

13
Object Model Objects
  • In computer science , an object is a data
    structure (incorporating data and methods) whose
    instance is unique and separate from other
    objects, although it can "communicate" with other
    objects.
  • In some occasions, some object can be conceived
    of as a sub program which can communicate with
    others by receiving or giving instructions based
    on its, or the other's, data or methods. Data can
    consist of numbers, literal strings , variables,
    and references.
  • the object lifetime (or life cycle) of an object
     in OOP  is the time between an object's creation
    (also known as instantiation or construction)
    till the object is no longer used, and is
    destructed or freed.

14
Object Model Collection
  • An object that contains zero or more objects
    (member).
  • Collections normally contain objects of the same
    class.
  • Also referred to as a collection object or an
    object collection.
  • Collection has normally two single read-only
    properties, Item and Count
  • you usually use the Item property or method and
    pass the name or index number of the member.

15
Object Model Container Object
  • An object that contains other objects from
    different classes.
  • Collection can have properties and/or methods.

16
Object ModelMethods
  • Method is a function or subroutine that is
    associated with a class in OPP.
  • Like a function in procedural languages, it may
    contain a set of program statements that perform
    an action, and (in most computer languages ) can
    take a set of input arguments and can return some
    kind of result.
  • The purpose of a method is to provide a mechanism
    for changing or accessing information stored in
    an object of the class.

17
Object ModelMethods
  • A method should preserve invariants associated
    with the class, and should be able to assume that
    every invariant is valid on entry to the method
  • A method can have parameters.
  • method may produce output, which are constrained
    by postconditions  of the method.
  • If the arguments  to a method do not satisfy
    their preconditions, a method can raise an
    exception

18
Object Model Event
  • In the context of programming, the occurrence of
    some particular action or the occurrence of a
    change of state that can be handled by an
    application or COM object that is invoked in
    response to the triggering of an event. .
  • For example, the arrival of a message to the SMTP
    service is an event that can be handled by any
    number of Applications or objects.

19
Object ModelProperty
  • Properties are like smart fields.
  • A property is an information that is associated
    with an object.
  • Each property has a value. value is a keyword in
    the syntax for the property definition.
  • The variable value is assigned to the property in
    the calling code.
  • The type of value must be the same as the
    declared type of the property to which it is
    assigned.
  • properties fall into two categories run-time
    properties and persistent properties.

20
Object ModelAttribute
  • Each property has attributes.
  • Attributes provide information about the
    property.
  • For example, the First Name property has the
    following attributes Name, Display Name,
    Description, and Type.
  • Attributes include information such as the data
    type of the profile property (for example,
    number, text, decimal, or site term), and whether
    the property is single-valued (for example, only
    one First Name entry is allowed per user) or
    multi-valued.

21
COMComponent Object Model
  • An architecture for defining interfaces (a set of
    abstract methods and properties that encompass
    some common purpose) and interaction among
    objects implemented by widely varying software
    applications.
  • All COM interfaces are extend and derived from
    the IUnknown, interface which includes the
    methods QueryInterface, AddRef, and Release.
  • COM interfaces additionally define a binary
    signature that acts as a contract between the
    interface designer and client applications
    written to use the interface COM classes provide
    concrete implementations of COM interfaces.

22
COMIUnknown
  • The fundamental COM interface, which must be
    extended by every valid COM interface.
  • IUnknown exposes three methods
  • QueryInterface, used to find out if the object
    supports a certain interface and return the
    interface if it does.
  • AddRef, to increment the interface reference
    count.
  • Release, to decrement the interface reference
    count.

23
COMCOM Class
  • An implementation of one or more COM interfaces.
  • COM objects are instances of COM classes.

24
COMCOM Interface
  • A pointer to a vtable pointer where the first
    three methods in that table are QueryInterface,
    AddRef, and Release.

25
COM ObjectsCOM Extensions Technologies
  • COM(Component Services )
  • ActiveX, OLE
  • SOM, DSOM IBMs System object model
  • DCOM (Distributed COM)
  • Distributed COM
  • CORBA Common Object Request Broker Architecture
  • RMI, JavaBeans SUN Microsystems technologies.
  • RPC Remote Procedure Call.

26
COM objects Where they are?
  • In the registry under HKEY_CLASSES_ROOT you will
    se all the classes registered in your system.
  • You can find there the Scripting.FileSystemObject
    Key, Excel.Application key etc
  • All those classes can be used in VBScript.
  • Each class has a description, a CLSID entry and
    some a version entry.
  • In CLSID you will find the class identifier.If
    you move to HKEY_CLASSES_ROOT\CLSID you will see
    wich dlls using this class.
  • For more information search for ltregistrationgt
    Element topic in VBScript documentation.

27
Set statement
  • Assigns an object reference to a variable or
    property, or associates a procedure reference
    with an event.
  • To be valid, object must be an object type
    consistent with the object being assigned to it.
  • The Dim, Private, Public, or ReDim statements
    only declare a variable that refers to an object.
  • No actual object is referred to until you use the
    Set statement to assign a specific object.
  • Generally, when you use Set to assign an object
    reference to a variable, no copy of the object is
    created for that variable.
  • Instead, a reference to the object is created.
  • More than one object variable can refer to the
    same object.
  • Because these variables are references to (rather
    than copies of) the object, any change in the
    object is reflected in all variables that refer
    to it.

28
Nothing Keyword
  • The Nothing keyword in VBScript is used to
    disassociate an object variable from any actual
    object.
  • Use the Set statement to assign Nothing to an
    object variable. For example
  • Set MyObject Nothing
  • Several object variables can refer to the same
    actual object.
  • When Nothing is assigned to an object variable,
    that variable no longer refers to any actual
    object.
  • When several object variables refer to the same
    object, memory and system resources associated
    with the object to which the variables refer are
    released only after all of them have been set to
    Nothing, either explicitly using Set, or
    implicitly after the last object variable set to
    Nothing goes out of scope.

29
CreateObject Function
  • CreateObject(servername.typename , location)
  • Creates and returns a reference to an Automation
    object.
  • servername - Required. The name of the
    application providing the object.
  • typename - Required. The type or class of the
    object to create.
  • location - Optional. The name of the network
    server where the object is to be created.
  • Automation servers provide at least one type of
    object.
  • For example, a word-processing application may
    provide an application object, a document object,
    and a toolbar object.

30
CreateObject Function
  • For example, a word-processing application may
    provide an application object, a document object,
    and a toolbar object.
  • To create an Automation object, assign the object
    returned by CreateObject to an object variable
  • Dim ExcelSheet
  • Set ExcelSheet CreateObject("Excel.Sheet")

31
CreateObject Function
  • Once an object is created, refer to it in code
    using the object variable you defined.
  • you can access properties and methods of the new
    object using the object variable.
  • Creating an object on a remote server can only be
    accomplished when Internet security is turned
    off.
  • You can create an object on a remote networked
    computer by passing the name of the computer to
    the servername argument of CreateObject.
  • That name is the same as the machine name portion
    of a share name.
  • For a network share named "\\myserver\public",
    the servername is "myserver". In addition, you
    can specify servername using DNS format or an IP
    address.

32
CreateObject FunctionSummary
  • Creating an object
  • Set myDoc CreateObject (Word.Document)
  • Using The object
  • MyDoc.content abc
  • MyDoc.SaveAs Doc1.doc
  • MyDoc.Close
  • Free the object
  • Set Mydoc Nothing
  • Type COM
  • Library Class

33
FileSystemObject ObjectBasics
  • When writing scripts it's often important to add,
    move, change, create, or delete folders and
    files.
  • It may also be necessary to get information about
    and manipulate drives attached to the machine.
  • Scripting allows you to process drives, folders,
    and files using the FileSystemObject (FSO) object
    model.

34
New Keyword
  • Keyword used to create a new instance of a class.
  • If objectvar contained a reference to an object,
    that reference is released when the new one is
    assigned.
  • The New keyword can only be used to create an
    instance of a class.
  • Using the New keyword allows you to concurrently
    create an instance of a class and assign it to an
    object reference variable.
  • The variable to which the instance of the class
    is being assigned must already have been declared
    with the Dim (or equivalent) statement.

35
FileSystemObejct Object Model
  • The FileSystemObject (FSO) object model allows
    you to use the familiar object.method syntax with
    a rich set of properties, methods, and events to
    process folders and files.
  • The FSO object model gives to the QTP the ability
    to create, alter, move, and delete folders, or to
    detect if particular folders exist, and if so,
    where. You can also find out information about
    folders, such as their names, the date they were
    created or last modified, and so forth.
  • The FSO object model also makes it easy to
    process files. When processing files, the primary
    goal is to store data in a space- and
    resource-efficient, easy-to-access format.
  • You need to be able to create files, insert and
    change the data, and output (read) the data.

36
FileSystemObejct Object Model
  • The FSO object model, which is contained in the
    Scripting type library (Scrrun.dll), supports
    text file creation and manipulation through the
    TextStream object.
  • Although it does not yet support the creation or
    manipulation of binary files, future support of
    binary files is planned.

37
FileSystemObject ObjectsMain
  • Main object.
  • Contains methods and properties that allow you to
    create, delete, gain information about, and
    generally manipulate drives, folders, and files.
  • Many of the methods associated with this object
    duplicate those in other FSO objects they are
    provided for convenience.

38
FileSystemObject ObjectsDrive Object
  • Contains methods and properties that allow you to
    gather information about a drive attached to the
    system, such as its share name and how much room
    is available.
  • Note that a "drive" isn't necessarily a hard
    disk, but can be a CD-ROM drive, a RAM disk, and
    so forth. A drive doesn't need to be physically
    attached to the system it can be also be
    logically connected through a network.

39
FileSystemObject ObjectsDrive Collection
  • Provides a list of the drives attached to the
    system, either physically or logically.
  • The Drives collection includes all drives,
    regardless of type.
  • Removable-media drives need not have media
    inserted for them to appear in this collection.

40
FileSystemObject ObjectsFile Object
  • Contains methods and properties that allow you to
    create, delete, or move a file.
  • Also allows you to query the system for a file
    name, path, and various other properties.

41
FileSystemObject ObjectsFiles Collection
  • Provides a list of all files contained within a
    folder.

42
FileSystemObject ObjectsFolder Object
  • Contains methods and properties that allow you to
    create, delete, or move folders.
  • Also allows you to query the system for folder
    names, paths, and various other properties.

43
FileSystemObject ObjectsFolders Collection
  • Provides a list of all the folders within a
    Folder.

44
FileSystemObject ObjectsTextStream Object
  • Allows you to read and write text files.

45
Programming the FileSystemObject
  • Use the CreateObject method to create a
    FileSystemObject object.
  • Use the appropriate method on the newly created
    object.
  • Access the object's properties.
  • Set objFSO CreateObject("Scripting.FileSystemObj
    ect")
  • Scripting is the name of the type library and
    FileSystemObject is the name of the object that
    you want to create.

46
Accessing Existing Drives, Files, and Folders
  • To gain access to an existing drive, file, or
    folder, use the appropriate "get" method of the
    FileSystemObject object
  • GetDrive
  • GetFolder
  • GetFile
  • Do not use the "get" methods for newly created
    objects, since the "create" functions already
    return a handle to that object.
  • For example, if you create a new folder using the
    CreateFolder method, don't use the GetFolder
    method to access its properties, such as Name,
    Path, Size, and so forth.
  • Just set a variable to the CreateFolder function
    to gain a handle to the newly created folder,
    then access its properties, methods, and events.

47
Accessing the Object's Properties
  • Once you have a handle to an object, you can
    access its properties.
  • For example, to get the name of a particular
    folder, first create an instance of the object,
    then get a handle to it with the appropriate
    method (in this case, the GetFolder method, since
    the folder already exists).

48
Working with Drives and Folders
  • With the FileSystemObject (FSO) object model, you
    can work with drives and folders programmatically
    just as you can in the Windows Explorer
    interactively.
  • You can copy and move folders, get information
    about drives and folders, and so forth.

49
Getting Information About Drives
  • The Drive object allows you to gain information
    about the various drives attached to a system,
    either physically or over a network.

50
Getting Information About Drives
  • The total size of the drive in bytes (TotalSize
    property).
  • How much space is available on the drive in bytes
    (AvailableSpace or FreeSpace properties).
  • What letter is assigned to the drive (DriveLetter
    property).
  • What type of drive it is, such as removable,
    fixed, network, CD-ROM, or RAM disk (DriveType
    property).
  • The drive's serial number (SerialNumber
    property).
  • The type of file system the drive uses, such as
    FAT, FAT32, NTFS, and so forth (FileSystem
    property).
  • Whether a drive is available for use (IsReady
    property)
  • The name of the share and/or volume (ShareName
    and VolumeName properties)
  • The path or root folder of the drive (Path and
    RootFolder properties)

51
Working With Folders
  • Create a folder - FileSystemObject.CreateFolder
  • Delete a folder - Folder.Delete or
    FileSystemObject.DeleteFolder
  • Move a folder - Folder.Move or FileSystemObject.Mo
    veFolder
  • Copy a folder - Folder.Copy or FileSystemObject.Co
    pyFolder
  • Retrieve the name of a folder - Folder.Name
  • Find out if a folder exists on a drive -
    FileSystemObject.FolderExists
  • Get an instance of an existing Folder object -
    FileSystemObject.GetFolder
  • Find out the name of a folder's parent folder -
    FileSystemObject.GetParentFolderName
  • Find out the path of system folders -
    FileSystemObject.GetSpecialFolder

52
Working With Files
  • There are two major categories of file
    manipulation
  • Creating, adding, or removing data, and reading
    files.
  • Moving, copying, and deleting files.

53
Creating Files
  • There are three ways to create an empty text
    file.
  • The first way is to use the CreateTextFile
    method.
  • The second way to create a text file is to use
    the OpenTextFile method of the FileSystemObject
    object with the ForWriting flag set.
  • A third way to create a text file is to use the
    OpenAsTextStream method with the ForWriting flag
    set.

54
Adding Data to the File
  • Once the text file is created, add data to the
    file using the following three steps
  • Open the text file.
  • Write the data.
  • Close the file.
  • To open an existing file, use either the
    OpenTextFile method of the FileSystemObject
    object or the OpenAsTextStream method of the File
    object.
  • To write data to the open text file, use the
    Write, WriteLine, or WriteBlankLines methods of
    the TextStream object according to your task.
  • To close an open file, use the Close method of
    the TextStream object.
  • Note   The newline character contains a character
    or characters to advance the cursor to the
    beginning of the next line. Be aware that the end
    of some strings may already have such nonprinting
    characters.

55
Reading Files
  • To read data from a text file, use the Read,
    ReadLine, or ReadAll method of the TextStream
    object.
  • If you use the Read or ReadLine method and want
    to skip to a particular portion of data, use the
    Skip or SkipLine method.
  • The resulting text of the read methods is stored
    in a string which can be displayed in a control,
    parsed by string functions (such as Left, Right,
    and Mid), concatenated, and so forth.

56
Moving, Copying, and Deleting Files
  • The FSO object model has two methods each for
    moving, copying, and deleting files
  • Move a file - File.Move or FileSystemObject.MoveFi
    le
  • Copy a file - File.Copy or FileSystemObject.CopyFi
    le
  • Delete a file - File.Delete or FileSystemObject.De
    leteFile

57
Lab 11.1
  • Tip
  • Const DRV_UNKNOWN 0
  • Const DRV_REMOVABLE 1
  • Const DRV_FIXED 2
  • Const DRV_NETWORK 3
  • Const DRV_CDROM 4
  • Const DRV_RAMDISK 5

58
Lab 11.2
  • Declare the follow constants
  • Constants returned by Drive.DriveType
  • Const conDriveTypeRemovable 1
  • Const conDriveTypeFixed 2
  • Const conDriveTypeNetwork 3
  • Const conDriveTypeCDROM 4
  • Const conDriveTypeRAMDisk 5
  • Constants returned by File.Attributes
  • Const conFileAttrNormal 0
  • Const conFileAttrReadOnly 1
  • Const conFileAttrHidden 2
  • Const conFileAttrSystem 4
  • Const conFileAttrVolume 8
  • Const conFileAttrDirectory 16
  • Const conFileAttrArchive 32
  • Const conFileAttrAlias 64
  • Const conFileAttrCompressed 128
  • Constants for opening files
  • Const conOpenFileForReading 1

59
Lab 11.2
  • Write the following functions.
  • ShowDriveType(objDrive) - Generates a string
    describing the drive type of a given Drive
    object.
  • ShowFileAttr(objFile) - Generates a string
    describing the attributes of a file or folder.
  • GenerateDriveInformation(objFSO) reports about
    the Drive Letter,Path, Type, IsReady, ShareName,
    VolumeName, TotalSize, FreeSpace, AvailableSpace,
    and SerialNumber.
  • GenerateFileInformation(objFile) File Name,
    Type, File Attributes, Date Created, Last
    Accessed, Last Modified and Size
  • GenerateFolderInformation(objFolder) Folder
    Name, Folder Attributes, Date Created, Last
    Accessed, Last Modified and Size

60
Lab 11.1
  • Create a Folder in the D\ drive, if not exist in
    C\ Drive.
  • The name of the folder is VBSInfo.
  • Create a file in the folder, TestInfo.txt
  • The file will contain the report of the program.
  • The data will displayed like a table (rows and
    columns with headers) use the vbTab for separate
    the data.
  • For getting information about the directories and
    files, please DONT do it an all drives, select
    only the drive were you created your file.

61
Lab 11.1
  • Create a Folder in the D\ drive, if not exist in
    C\ Drive.
  • The name of the folder is VBSInfo.
  • Create a file in the folder, TestInfo.txt
  • The file will contain the report of the program.
  • The data will displayed like a table (rows and
    columns with headers) use the vbTab for separate
    the data.
  • For getting information about the directories and
    files, please DONT do it an all drives, select
    only the drive were you created your file.

62
Whats Next
  • What means error handling.
  • When to use On Error statements.
  • Using the error object.
  • Raising our own errors.
  • The next session is for advanced users.

63
Make sure to visit us
  • Tutorials
  • Articles
  • Proikects
  • And much more
  • www.AdvancedQTP.com
Write a Comment
User Comments (0)
About PowerShow.com