工控随笔_13_西门子_WinCC的VBS脚本_04_变量类型之二

  上一个随笔说了一些关于vbs变量类型的内容,这一篇咱们继续说说变量类型相关的内容。html

 

1、NULL补充内容编程

'须要注意的是,NULL不能简单经过 = 来进行比较,而必须经过
'IsNull函数来实现

'下面用 = 进行比较,不会执行IF子句
Dim varTest
varTest = Null
If varTest = Null Then 
    MsgBox "The variable varTest has NULL value."
End If


'下面用IsNull检测,会执行语句
If IsNull(varTest) Then
    MsgBox "利用IsNull检测,执行语句,varTest就是NULL"
End If


'*********************************
'
'Null 不能进行强制类型转换
'MsgBox CLng(varTest)
'MsgBox CStr(varTest)

'null的隐式类型转换
Dim lngTest 
lngTest = 2 + varTest
'直接输出lngTest产生未知数据错误
'MsgBox lngTest

'NULL隐式类型转换为控制符串""
MsgBox "数值与null进行加法运算,生成未知值,但NULL能够和string链接" & lngTest

 

2、初识OOP编程语言

'      vbs的OOP
'
'一、vbs是一种面向对象的脚本编程语言
'二、oop的一些原理和思想在vbs中是通用的,这里再也不多说

'set关键字,对对象变量进行赋值必须采用set关键字,不然出错
'CreateObject函数,用来建立对象

'wsh对象
Dim objWSH
Set objWSH = CreateObject("Wscript.Shell")
MsgBox "当前工做路径是: " & objWSH.CurrentDirectory


'文件系统
Dim objFSO
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
objFSO.CreateTextFile("D:\我是vbs生成的文件.txt")
If objFSO.FileExists("D:\我是vbs生成的文件.txt") Then
    MsgBox "已经经过FSO系统生成文件"
End If


'对象类型具备必定的特殊性
'一、必须用Set关键字来初始化对象变量
'二、对象的类型必须经过Is函数来检测,和NULL、Empty同样
'三、有个特殊的对象常量,Nothing,这个表示对象变量不指向任何对象
'四、经过 set objXxx = Nothing 来取消objXxx与对象引用的关联

If IsObject(objWSH) Then
    MsgBox "objWSH变量已经初始化,而且已经指向对象"
End If

'必须经过set 关键字来从新给对象赋值
If objWSH Is Nothing  Then
    MsgBox "objWSH变量已经初始化,而且已经指向对象,这一句不执行"
Else
    MsgBox "objWSH变量依然指向对象,不是Nothing,执行这一句"
End If

'检测一个变量是否已经不指向任何对象,或者说检测一个变量是不是一个对象
'的引用,那么必须用 IS 操做符,不能经过简单 = Nothing来检测
Set objWSH = Nothing
If objWSH Is Nothing  Then
    MsgBox "objWSH变量已经设置为Nothing,执行这一句"
Else
    MsgBox "objWSH变量被设置成不指向任何对象,这一句不执行"
End If
    

 

、容错机制函数

'   vbs中的容错机制

'一、在程序的执行过程当中不可避免的会出现某些错误,咱们有时候不能由于出现
'   某些错误就中止程序的执行,这就须要提供一个机制来规避错误出现的风险
'二、vbs中有一种继续执行机制,就是当错误存在的时候,继续执行
'三、on error resume next 语句用来告诉脚本引擎,当出现异常的时候,继续往
'   下执行
On Error Resume Next

'绕过错误继续执行
Dim varNull
varNull = Null
'利用msgbox 显示一个Null值,是一个错误,可是由于有 on error resume next
'脚本将会继续执行
MsgBox varNull

varNull = "我已经赋值,不在是NULL,因此能够正常显示"
MsgBox varNull


'********************************************
' 利用on error resume next 存在一个风险,就是若是逻辑不正确的话
' 将会产生未知的后果,所以在编写代码的时候,最好要用防护式编程
' 将产生未知状况的可能性降到最低的可能性
' 防护式编程实例
'假设输入员工的年龄
Dim nAge 
Dim nInput
nInput = InputBox("请输入您的年龄","输入","0")
'由于输入可能不是数值,因此就须要检测
If IsNumeric(nInput) Then
    nAge = CInt(nInput)
Else
    MsgBox "您输入不是数值! 将设置为22岁"
    nAge = 22
End If

'由于人的年龄不能小于0,且正常状况下不可能超过200岁,因此当出现
'不在 0 ~ 200 范围的时候,将年龄设置为22
If nAge < 0 Or nAge > 200 Then
   nAge = 22
End if 
MsgBox "您的年龄是: " & nAge


    

 

--------------------------------------------------------------分割线---------------------------------------------------------------oop

一、文章均为我的原创,欢迎转载,转载请保留出处:https://www.cnblogs.com/volcanol/spa

二、获取工控PLC、变频器、HMI、计算机、Windows、Linux、嵌入式资料点击:获取资料
code

三、若是您以为文章对您有帮助可转至页面上半部分打赏,或移步:打赏 htm

四、或者在页面右下角点推荐哟!!!对象

--------------------------------------------------------------分割线------------------------------------------------------------blog

相关文章
相关标签/搜索