温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

VBScript脚本实现数组排序

发布时间:2020-06-23 18:23:00 来源:网络 阅读:1032 作者:孤月2012 栏目:软件技术

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


运行,输出结果如下:

VBScript脚本实现数组排序



向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI