在VBScript中很少见的一个函数的用法示例GetRef()

nanyang9 2008-10-02 12:28:43
有朋友谈起了VBScript中的这个函数:GetRef()
总认为它应该能派上用场,同时也想起了在Flash ActionScript 3中经常会遇到的一种结构(或称算法),
于是写了下面的代码.这种结构对代码重复利用很有利.

'主调函数
Sub Order(obj,fun)
Dim i,j,max,temp
max=UBound(obj)
For i=0 To max
temp=obj(i)
For j=i+1 To max
If Not fun(temp,obj(j)) Then
temp=obj(j)
obj(j)=obj(i)
obj(i)=temp
End If
Next
Next
End Sub
'排序函数(升序)
Function ByAsc(n1,n2)
If n1<n2 Then
ByAsc=True
Else
ByAsc=False
End If
End Function
'排序函数(降序)
Function ByDesc(n1,n2)
If n1>n2 Then
ByDesc=True
Else
ByDesc=False
End If
End Function
'进行测试
Dim arr(5),x,str1,str2
arr(0)=3
arr(1)=8
arr(2)=3
arr(3)=7
arr(4)=5
arr(5)=1
Call Order(arr,GetRef("ByAsc"))
str1="" : str2=""
For x=0 To UBound(arr)
str1=str1&arr(x)&" "
Next
Call Order(arr,GetRef("ByDesc"))
For x=0 To UBound(arr)
str2=str2&arr(x)&" "
Next
'输出结果
MsgBox("["&str1&"]"&VbCrLf&"["&str2&"]")


这是一段对数组里的数据按自定义函数里的排序规则进行排序的代码.可以看到算定义函数简洁明了,很好写.
能过自定义函数,可以很快的写出自己的非规则的各种排序算法.
...全文
113 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
chaircat 2008-10-09
  • 打赏
  • 举报
回复
无非一个函数指针...
AJAX里面可以用

4,008

社区成员

发帖
与我相关
我的任务
社区描述
它是一种微软环境下的轻量级的解释型语言,它使用COM组件、WMI、WSH、ADSI访问系统中的元素,对系统进行管理。
社区管理员
  • vbScript社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧