当前位置: 首页 > 图文教程 > 网络编程 > ASP > asp 动态数组 提供Add、Insert、Remove、RemoveAt、Search等方法。

ASP
ASP 中 Split 函数的实例
存贮过程
asp内置对象 ObjectContext详解
如何写出优秀的ASP应用
用ASP制作强大的搜索引擎
ASP 系列函数大全
彩色校验码的制作
ASP中使用SQL语句教程
ASP提速技巧五则
ASP进度条
在电子商务中实现购物车的方法
ASP读取系统时区的错误行为修正
Rs.open sql,conn,A,B 的A、B各代表什么?
FSO组件操作实例技巧
用asp连接各种数据库的方法
WEB打印设置解决方案一
WEB打印设置解决方案二
WEB打印设置解决方案三
实例分析CSS属性Display与Visibility不同
每页都有的表头和打印分页

ASP 中的 asp 动态数组 提供Add、Insert、Remove、RemoveAt、Search等方法。


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 198 ::
收藏到网摘: n/a

asp动态数组,提供Add、Insert、Remove、RemoveAt、Search等方法。可以在数组中存储对象不考虑效率问题
复制代码 代码如下:

Class Vector
Private vector_datas()
Private initial_capacity '初始化容量
Private capacity_increment '容量增量
Private element_count '元素数
Private max_capacity '总容量
Private Sub Class_Initialize()
RemoveAll
End Sub
Public Function RemoveAll()
element_count = 0
initial_capacity = 10
capacity_increment = 10
max_capacity = initial_capacity
ReDim vector_datas(initial_capacity)
End Function
Public Property Get Count()
Count = element_count
End Property
Public Property Get Capacity()
Capacity = max_capacity
End Property
Public Property Get InitialCapacity()
InitialCapacity = initial_capacity
End Property
Public Property Get CapacityIncrement()
CapacityIncrement = capacity_increment
End Property
Public Default Property Get Item(index)
If IsObject(vector_datas(index)) Then
Set Item = vector_datas(index)
Else
Item = vector_datas(index)
End If
End Property
Public Function Add(element)
Call Insert(element_count, element)
End Function
Public Function Remove(element)
Dim index
index = Search(element)
RemoveAt(index)
Remove = index
End Function
Public Function RemoveAt(index)
Dim i
For i = index + 1 To element_count - 1 Step 1
Call InternalElement(i - 1, vector_datas(i))
Next
element_count = element_count - 1
If max_capacity - capacity_increment > element_count Then
max_capacity = max_capacity - capacity_increment
ReDim Preserve vector_datas(max_capacity)
End If
End Function
Public Function Search(element)
Dim i
For i = 0 To element_count - 1 Step 1
If vector_datas(i) = element Then
Search = i
Exit Function
End If
Next
Search = -1
End Function
Public Function Insert(index, element)
If index > element_count Then
Err.Raise 20903, "Vector", "Array Index Out Of Bounds.", "", 0
End If
If element_count = 0 Then
Call InternalElement(0, element)
ElseIf index = element_count Then
Call InternalElement(element_count, element)
Else
Dim i
For i = element_count To index + 1 Step -1
Call InternalElement(i, vector_datas(i - 1))
Next
Call InternalElement(index, element)
End If
element_count = element_count + 1
If element_count = max_capacity Then
max_capacity = element_count + capacity_increment
ReDim Preserve vector_datas(max_capacity)
End If
End Function
Public Function SetElementAt(index, element)
If index < 0 Or index > element_count - 1 Then
Err.Raise 20903, "Vector", "Array Index Out Of Bounds.", "", 0
End If
Call InternalElement(index, element)
End Function
Private Function InternalElement(index, element)
On Error Resume Next
If IsObject(element) Then
Set vector_datas(index) = element
Else
vector_datas(index) = element
End If
If Err.Number <> 0 Then
MsgBox("Vector InternalElement Error: " & vbCrLf & "Error Source: " & Err.Source & vbCrLf & "Error Number: " & Err.Number & vbCrLf & "Error Description: " & Err.Description & vbCrLf)
Err.Clear '清除错误信息
End If
End Function
Private Sub Class_Terminate() '类销毁
Erase vector_datas '释放数组占用的内存, 將每個元素都設為 Nothing
initial_capacity = Empty
capacity_increment = Empty
element_count = Empty
max_capacity = Empty
End Sub
End Class

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/o1o2o3o4o5/archive/2009/10/20/4703033.aspx