VBScript Tutorials - Herong's Tutorial Examples - v6.03, by Herong Yang
GetVarInfo() - Variable Inspection Example
This section provides a tutorial example of writing a code, GetVarInfo(), to print out data type information of a given variable.
To show you how those inspection function work, I wrote the following example, variant_subtype_detection.html:
<html>
<body>
<!-- variable_inspection.html
- Copyright (c) 1998 HerongYang.com. All Rights Reserved.
-->
<pre>
<script language="vbscript">
document.writeln(" ")
document.writeln("Checking variants with value:")
document.writeln("V1 " & GetVarInfo(777) & " (777)")
document.writeln("V2 " & GetVarInfo(777777) & " (777777)")
document.writeln("V3 " & GetVarInfo(3.14) & " (3.14)")
document.writeln("V4 " & GetVarInfo(3.3e200) & " (3.3e200)")
document.writeln("V5 " & GetVarInfo("Hello") & " (""Hello"")")
document.writeln("V6 " & GetVarInfo(TRUE) & " (TRUE)")
document.writeln("V7 " & GetVarInfo(#31-Dec-1999#) _
& " (#31-Dec-1999#)")
document.writeln(" ")
document.writeln("Checking strings with value:")
document.writeln("S1 " & GetVarInfo("777") & " (""777"")")
document.writeln("S2 " & GetVarInfo("3.14") & " (""3.14"")")
document.writeln("S3 " & GetVarInfo("True") & " (""True"")")
document.writeln("S4 " & GetVarInfo("#31-Dec-1999#") _
& " (""#31-Dec-1999#"")")
document.writeln(" ")
document.writeln("Checking arrays:")
Dim aFixed(5)
document.writeln("A1 " & GetVarInfo(aFixed) & " (Fixed)")
aFixed(5) = 555
document.writeln("A2 " & GetVarInfo(aFixed) & " (Fixed/Val.)")
Dim aDynamic()
document.writeln("A3 " & GetVarInfo(aDynamic) & " (Dyn.)")
ReDim aDynamic(3)
document.writeln("A4 " & GetVarInfo(aDynamic) & " (Dyn./Set)")
aDynamic(3) = "Dog"
document.writeln("A5 " & GetVarInfo(aDynamic) & " (Dyn./Set/Val.)")
document.writeln(" ")
document.writeln("Checking emptiness:")
vNull = Null
document.writeln("E1 " & GetVarInfo(vNull) & " (Null)")
vEmpty = Empty
document.writeln("E2 " & GetVarInfo(vEmpty) & " (Empty)")
document.writeln(" ")
document.writeln("Checking objects:")
document.writeln("O1 " & GetVarInfo(Document) & " (Document)")
Function GetVarInfo(vAnyThing)
If IsObject(vAnyThing) Then
sObject = "Obj=Y"
Else
sObject = "Obj=N"
End If
If IsArray(vAnyThing) Then
sArray = "Array=Y"
Else
sArray = "Array=N"
End If
If IsDate(vAnyThing) Then
sDate = "Date=Y"
Else
sDate = "Date=N"
End If
If IsNumeric(vAnyThing) Then
sNumeric = "Num=Y"
Else
sNumeric = "Num=N"
End If
If IsNull(vAnyThing) Then
sNull = "Null=Y"
Else
sNull = "Null=N"
End If
If IsEmpty(vAnyThing) Then
sEmpty = "Empty=Y"
Else
sEmpty = "Empty=N"
End If
sType = TypeName(vAnyThing)
GetVarInfo = sObject & " " & sArray & " " & sDate _
& " " & sNumeric & " " & sNull & " " & sEmpty & " " & sType
End Function
</script>
</pre>
</body>
</html>
Here is the output:
Checking variants with value:
V1 Obj=N Array=N Date=N Num=Y Null=N Empty=N Integer (777)
V2 Obj=N Array=N Date=N Num=Y Null=N Empty=N Long (777777)
V3 Obj=N Array=N Date=N Num=Y Null=N Empty=N Double (3.14)
V4 Obj=N Array=N Date=N Num=Y Null=N Empty=N Double (3.3e200)
V5 Obj=N Array=N Date=N Num=N Null=N Empty=N String ("Hello")
V6 Obj=N Array=N Date=N Num=Y Null=N Empty=N Boolean (TRUE)
V7 Obj=N Array=N Date=Y Num=N Null=N Empty=N Date (#31-Dec-1999#)
Checking strings with value:
S1 Obj=N Array=N Date=N Num=Y Null=N Empty=N String ("777")
S2 Obj=N Array=N Date=Y Num=Y Null=N Empty=N String ("3.14")
S3 Obj=N Array=N Date=N Num=N Null=N Empty=N String ("True")
S4 Obj=N Array=N Date=N Num=N Null=N Empty=N String ("#31-Dec-1999#")
Checking arrays:
A1 Obj=N Array=Y Date=N Num=N Null=N Empty=N Variant() (Fixed)
A2 Obj=N Array=Y Date=N Num=N Null=N Empty=N Variant() (Fixed/Val.)
A3 Obj=N Array=Y Date=N Num=N Null=N Empty=N Variant() (Dyn.)
A4 Obj=N Array=Y Date=N Num=N Null=N Empty=N Variant() (Dyn./Set)
A5 Obj=N Array=Y Date=N Num=N Null=N Empty=N Variant() (Dyn./Set/Val.)
Checking emptiness:
E1 Obj=N Array=N Date=N Num=N Null=Y Empty=N Null (Null)
E2 Obj=N Array=N Date=N Num=Y Null=N Empty=Y Empty (Empty)
Checking objects:
O1 Obj=Y Array=N Date=N Num=N Null=N Empty=N HTMLDocument (Document)
There are a number of interesting notes here:
Table of Contents
Introduction of VBScript - Visual Basic Scripting Edition
Variant Data Type, Subtypes, and Literals
Numeric Comparison Operations and Logical Operations
String Operations - Concatenation and Comparison
Variable Declaration and Assignment Statement
Expression and Order of Operation Precedence
Statement Syntax and Statement Types
Array Data Type and Related Statements
Array References and Array Assignment Statements
Conditional Statements - "If ... Then" and "Select Case"
Loop Statements - "For", "While", and "Do"
"Function" and "Sub" Procedures
►Inspecting Variables Received in Procedures
Variable Inspection - Data Type Validation
►GetVarInfo() - Variable Inspection Example
GetInteger() - Crash-Free Integer Conversion
Error Handling Flag and the "Err" Object
Regular Expression Pattern Match and Replacement
scrrun.dll - Scripting Runtime DLL Library
IE Web Browser Supporting VBScript