VBScript脚本实现数组排序

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

运行,输出结果如下:

时间: 2024-08-14 23:33:26

VBScript脚本实现数组排序的相关文章

VBScript脚本语言

VBScript 是基于号码大全VB的脚本言语.首要关键词挖掘工具用于Asp和Excel的编程. VB宗族言语简介 Visual Basic 6.0 源于BASIC言语. 由微软公司开发的包括帮忙开发环境的事情驱动编程言语.开发程序只能运转在Windows体系上,而且需求一个1.4M的运转库. 特色:功能强大,易学易用. 虽然是面向对象的言语,不支撑承继和多线程. VB6 派生的言语 Visual Basic For Application 即VBA,包括的微软的应用程序中(比方Microsof

自动化测试(四):VBScript脚本语言

VBS基于对象,只能利用现成的对象,不能封装.继承等,意味着不是真正的面向对象 语言的学习: 1.数据定义,变量定义,表达式 2.程序控制结构 3.函数,方法,类 4.异常处理 VBScript的数据类型 VBScript只用一种数据类型,称为Variant,Variant是一种特殊的数据类型,根据使用的方式,它可以包含不同类别的信息,因为Variant是VBS中唯一的数据类型,所以它也是VBS中所有函数的返回值的数据类型,包括Empty,Null和Error三种特殊类型. 最简单的Varian

在XSLT样式表中插入VBScript脚本进行数学计算

继上次我写了篇文章<在XSLT样式表中使用莱布尼兹级数计算π的近似值>后,我发现在XSLT中使用模板的递归调用,有下面两个缺点:1)易读性差,有失灵活:2)效率低下.因此,我又想了一个新的策略实现在XSLT中的一些复杂的计算工作,这就是在XSLT中嵌入脚本,本文以VBScript为例描述了这一过程 现有XML文档pi.xml如下: <?xml version="1.0" encoding="utf-8"?> <?xml-styleshe

VBScript脚本实现在目录中自动获取某个文件

1. 应用场景:通常在开发流上都会保留本版本或历史版本的多个bulid,若需要获取目录中(目录中除了build还有很多其他名称不一样的文件)最新的build安装该如何写脚本实现呢?而且通常build的命名中都会有依次增加的version号,该如何实现脚本可每日重复使用呢? 2.实现思路:1>处理文件名称,定义一个常量文件名,将文件名中的变化的version号用*代替: 2>给定已知的目录,获取给目录下所有的子文件,然后将按*分割,依次匹配子文件的文件名和被分割的这两部分名称. 3.代码如下:

在C#中调用VBScript和JavaScript等脚本的实现

在C#中调用VBScript.JavaScript等脚本的实现 作者:郑佐 2004-04-26 以前在做工作流(workflow)项目的时候,里面有一项就是在用户制定流程定义时可以编写脚本来控制活动的跳转,而这些脚本定义后存在数据库中,当流程启动的时候,工作流引擎会控制活动执行顺序,串型的两个活动比较简单,但有的活动到下一个活动有条件判断,或者存在多个分支,简单的还好,只要在数据库表中加个字段就可以实现,复杂一点的就需要通过脚本实现了.当时经验不够,几天都没找到快速的解决办法,想自己写一个自定

vbscript调用WMI一键式式发布网站

作为.net开发,在window环境下,不得不熟悉些脚本语言,来减轻些日常开发中所遇到的一些繁杂的事情,比如自动发布网站,自动发布网站等等. WMI windows管理程序接口,可用各种与语言调用,方便起见,我选择VBscript脚本语言来实现一键式发布网站 所需WMI对象 Set oWebAdmin=GetObject("winmgmts:root\WebAdministration") oWebAdmin 提供管理 site Application VirtualDirectory

SecureCRT自动登陆到服务器的脚本以及脚本编写简单说明

http://blog.csdn.net/marising/article/details/6409196 Secure用SSH登陆服务器时,如果服务器较多,登陆一次很麻烦,所以,可以自己编写VBScript来搞定. 一.Secure脚本介绍 Secure是VBScript脚本,VB脚本的教程,请参考有关文档. Secure自带的对象如下: Application对象,就是crt,是个顶层的对象,所有其他内容都从这个对象中获得 Session,会话对象,负责连接相关 Tab对象,就是标签页 Sc

Loadrunner脚本回放 场景运行过程中常见错误分析

问题一:Loadrunner超时错误问题描述 Loadrunner超时错误:在录制Web协议脚本回放时超时情况经常出现,产生错误的原因也有很多,解决的方法也不同. 问题现象Error -27728: Step download timeout (120 seconds) has expired when downloading non-resource(s). 错误分析对于HTTP协议,默认的超时时间是120秒(可以在LoadRunner中修改),客户端发送一个请求到服务器端,如果超过120秒服

VBScript读取XML文件

虽然现今数据大部分都是使用数据库存储,但是停电断网等不可抗拒因素经常中断着automation的进行,这时若这些非业务的配置数据用xml来存储就显得方便很多了,下面是用VBScript脚本读取XML文件的实现方法,记录下以作备忘. 1. XML文件的节点信息: <?xml version="1.0"?> <TC_TestLogon>   <TNSLogon>     <DataID>1</DataID>     <I_T