工控隨筆_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

相關文章
相關標籤/搜索