asp数组详解 asp 动态数组 不定长数组 asp数组下标超界

bywzy 发表于 程序设计 分类,
0

ASP编程中使用数组

数组的定义
Dim MyArray
MyArray = Array(1‚5‚123‚12‚98)

可扩展数组
Dim MyArray()
for i = 0 to 10
ReDim Preserve MyArray(i)
MyArray(i)=i
next

将一个字符串分割并返回分割结果的数组
Dim MyArray
MyArray = Split(tempcnt‚chr(13)&chr(10))
For I = Lbound(MyArray) to Ubound(MyArray)
Response.Write MyArray(I) & "<br>"
Next

数组排序函数
function..Sort(ary)
KeepChecking = TRUE
Do Until KeepChecking = FALSE
KeepChecking = FALSE
For I = 0 to UBound(ary)
If I = UBound(ary) Then Exit For
If ary(I) > ary(I+1) Then
FirstValue = ary(I)
SecondValue = ary(I+1)
ary(I) = SecondValue
ary(I+1) = FirstValue
KeepChecking = TRUE
End If
Next
Loop
Sort = ary
End function..

数组排序函数应用例子
Dim MyArray
MyArray = Array(1‚5‚123‚12‚98)
MyArray = Sort(MyArray)
For I = Lbound(MyArray) to Ubound(MyArray)
Response.Write MyArray(I) & "<br>"
Next

在Application和Session中使用数组
Application.Lock
Application("StoredArray") = MyArray
Application.Unlock

LocalArray = Application("StoredArray")

覆盖Application中的数组
Application.Lock
Application("StoredArray") = LocalArray
Application.Unlock

Session使用方法与Application相同

从数据库中把数据导入数组中
Dim MyArray
取出全部记录
MyArray = RS.GetRows
取出前10项记录
MyArray = RS.GetRows(10)

For row = 0 To UBound(MyArray‚ 2)
For col = 0 To UBound(MyArray‚ 1)
Response.Write (col‚ row) & "<br>"
Next
Next

asp 数组小结说明:
1. dim不能用作不确定长度 不定长数组可用redim定义
   redim可以,可以设一个变量[但是使用前必须传给改变量一个整数]  
   例:Cnt=12   [传值可用CInt转换CInt(request.form("num"))]
      redim   MyArray(Cnt)  
2.preserve 保留原值
   例:redim   a(10)  
      1—->   redim   a(20)     '这样的话原来a(10)中的所有内容清空  
    2—->   redim   preserve   a(20)   '这样的话原来的a(10)中的内容保留
3.数组个数    
  在以DIM或REDIM定义数组时指定的下标,表示的是访问该数组时所容许的最大下标,却不是该数组的个数。实际上,一维数组个数总是等于(最大下标+1),访问时是通过下标从0开始逐个访问的。  
   例:Dim   myarray(5)   定义的数组元素有6个,分别是:myarray(0)、myarray(1)、myarray(2)、myarray(3)、myarray(4)、myarray(5)。  
4.关于UBOUND函数    
  UBOUND返回的是一维数组的最大下标,而不是元素个数。   比如:Dim   Myarray(5),那么UBOUND(Myarray)返回的值是5,而不是6。   ubound也可以应用于二维数组。应用于二维数组时,它返回的是第一个下标的最大值。  
    
  例:Dim   Myarray(6,3)
  
  那么UBOUND(Myarray)返回的值是6,而不是7,更不是18(6*3=18)。

« 上一篇: :下一篇 »

发表我的评论

icon_wink.gif icon_neutral.gif icon_mad.gif icon_twisted.gif icon_smile.gif icon_eek.gif icon_sad.gif icon_rolleyes.gif icon_razz.gif icon_redface.gif icon_surprised.gif icon_mrgreen.gif icon_lol.gif icon_idea.gif icon_biggrin.gif icon_evil.gif icon_cry.gif icon_cool.gif icon_arrow.gif icon_confused.gif icon_question.gif icon_exclaim.gif