1. 網站建設中asp數組的使用

      2011-06-14

      定義一個簡單的數組

      有兩種方法在asp中定義數組,讓我們看看每種的例子:

      方法一:
      MyArray = Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct", "Nov","Dec")

      方法二:
      Dim myArray(2)

      myArray(0)="Jan"
      myArray(1)="Feb"

      動態改變數組的大小

      DIM myArray()
      REDIM myArray(20) '將數組重新定義為20維

      可擴展數組舉例:將數組從0擴展到10
      Dim MyArray()
      for i = 0 to 10
      ReDim Preserve MyArray(i) ‘Preserve   保留原來數據
      MyArray(i)=...
      next

      .................................................................................................

      有用的數組函數

      Ubound(arrayName)函數

      Lbound(arrayName)這個函數是返回數組的上標,也就是數組第一個元素的標記。

      .................................................................................................

      .................................................................................................

      向另一個頁面傳遞數組

      現在有很多種方法向另一頁面傳遞數組,目前有三種方法:

      定義一個又逗號分隔的字符串,然后再下一頁中用Split函數重新建立數組。
      將數組存儲在一個Session變量中,然后在下一個頁面中調用。
      通過表單的隱含區域來傳遞數組,他們都是自動用逗號分開,然后再用Split函數重新建立數組。

      前兩種方法很好,但是都比第三中復雜。在這里我們將只介紹第三種,因為它是簡單有效的。

      1.asp:
      <%
      dim I
      dim myArray(20)

      for I=0 to 20
      myArray(I)="Item " & I
      next
      %>



      <%
      for I=0 to ubound(myArray)
      response.write ""
      next
      %>





      以上我們做的是在一個表單中用單獨的隱含域存儲數組中的每個元素,我們再看看下一頁:

      2.asp


      <%
      dim arrString
      dim myArray
      dim I

      arrString=request("myArray")
      myArray = split(arrString,",")

      for I=0 to ubound(myArray)
      response.write "Item "&I&" = " & myArray(I) & "
      " & vbCrLf
      next
      %>

       

      ------------------------------------------------

      將一個字符串分割并返回分割結果的數組
      Dim MyArray
      MyArray = Split(tempcnt,chr(13)&chr(10))
      For I = Lbound(MyArray) to Ubound(MyArray)
      Response.Write MyArray(I) & "
      "
      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) & "
      "
      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) & "
      "
      Next
      Next