您好,登錄后才能下訂單哦!
1、需求:VBScript對數組的功能支持相對其他語言而言比較弱,然而在腳本應用中經常要使用數組,甚至對數組排序等,例如:遍歷某個目錄下的所有文件,并按某個規則依次保存到數組中。
2、實現方法:既然VBScript本身的功能不夠,那么可以調用.NET Framework相關組件(mscoree.dll)的功能,具體實現如下:
1> 寫個數組排序函數(參數:數組):
Function aSortArray(Array) Dim i,oArrayList, iElement,tempArray() 'CreateObject( "System.Collections.ArrayList" )即是調用了mscoree.dll,是.NET Framework的相關組件 Set oArrayList = CreateObject( "System.Collections.ArrayList" ) For iElement = 0 To UBound(Array) oArrayList.Add Array(iElement) Next '調用對象的排序方法 oArrayList.Sort redim tempArray(oArrayList.count) for i=0 to oArrayList.Count-1 If oArrayList.item(i)<>"" Then tempArray(i) = oArrayList.item(i) End If Next aSortArray=tempArray End Function '說明:由于oArrayList是對象,直接做為返回值,意義不大,因此需要對oArrayList對象再處理,只存儲它的值就可以了。 '上述排序結果輸出的數組是按從小到大排序的,若要得到從大到小的結果數組,將tempArray(i) = oArrayList.item(i) 改為 tempArray(ArrayList.Count-1-i) = oArrayList.item(i) 即可。
2>驗證功能:
Sub main Dim arrs,a,i arrs=Array(12,14,70,2,89,412,87,41,8,-7,60) a=aSortArray(arrs) for i=0 to UBound(a) If a(i)<>"" Then log.Message( a(i)) End If Next End Sub
運行,輸出結果如下:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。