昨天晚上linkanyway问我VBS数组怎么排序,有没有sort方法。我说,VBS又不是C#,怎么可能有sort方法,自己写个排序算法不就行了。他说他不会写,忽悠谁呢。
如果问题就这么结束,那么也就不会有这篇文章。怪我手贱,在Google中输入“vbs sort”,回车,看到一段代码,顿时泪流满面。
复制代码代码如下:
Set outputLines = _
CreateObject("System.Collections.ArrayList")
'add lines
outputLines.Add output
outputLines.Add output
outputLines.Sort()
For Each outputLine in outputLines
stdout.WriteLine outputLine
Next
System.Collections.ArrayList不是.NET里面的类吗?在VBS中可以使用.NET中的类?事实证明,大约的确是可以的,不过仅限于很少一部分,至于是哪些,自己想吧。
一个示例程序:
复制代码代码如下:
Set ArrayList = _
CreateObject("System.Collections.ArrayList")
Randomize
For i = 1 To 10
n = Int(100 * Rnd + 1)
out = out & n & " "
ArrayList.Add n
Next
WScript.Echo out
WScript.Echo "============================="
ArrayList.Sort()
out = ""
For Each i In ArrayList
out = out & i & " "
Next
WScript.Echo out
当然了,不是每个系统上都装有.NET Framework的,这种没有移植性的代码还是少写的好。不过有特殊需要的朋友,主要先安装.net组件。让脚本可以做更多的事。
原文:http://demon.tw/programming/vbs-and-net-framework.html