一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

asp?vbscript?數(shù)組的使用

 麒麒父 2011-06-23

asp vbscript 數(shù)組的使用

數(shù)組變量和動(dòng)態(tài)調(diào)整數(shù)組大小

VBScript數(shù)組變量

有時(shí)候,將多個(gè)相關(guān)值賦給一個(gè)變量更為方便,因此可以創(chuàng)建包含一系列值的變量,稱(chēng)為數(shù)組變量。數(shù)組變量和標(biāo)量變量是以相同的方式聲明的,唯一的區(qū)別是聲明數(shù)組變量時(shí)變量名后面帶有括號(hào) ( )。

下例聲明了一個(gè)包含 11 個(gè)元素的一維數(shù)組:

Dim A(10)
雖然括號(hào)中顯示的數(shù)字是 10,但由于在 VBScript 中所有數(shù)組都是基于 0 的,所以這個(gè)數(shù)組實(shí)際上包含 11 個(gè)元素。在基于 0 的數(shù)組中,數(shù)組元素的數(shù)目總是括號(hào)中顯示的數(shù)目加 1。這種數(shù)組被稱(chēng)為固定大小的數(shù)組。

在數(shù)組中使用索引為數(shù)組的每個(gè)元素賦值。從 0 到 10,將數(shù)據(jù)賦給數(shù)組的元素,如下所示:

A(0) = 256
A(1) = 324
A(2) = 100
. . .
A(10) = 55
與此類(lèi)似,使用索引可以檢索到所需的數(shù)組元素的數(shù)據(jù)。例如:

. . .
SomeVariable = A(8)
. . .
數(shù)組并不僅限于一維。數(shù)組的維數(shù)最大可以為 60(盡管大多數(shù)人不能理解超過(guò) 3 或 4 的維數(shù))。聲明多維數(shù)組時(shí)用逗號(hào)分隔括號(hào)中每個(gè)表示數(shù)組大小的數(shù)字。在下例中,MyTable 變量是一個(gè)有 6 行和 11 列的二維數(shù)組:

Dim MyTable(5, 10)
在二維數(shù)組中,括號(hào)中第一個(gè)數(shù)字表示行的數(shù)目,第二個(gè)數(shù)字表示列的數(shù)目。

也可以聲明動(dòng)態(tài)數(shù)組,即在運(yùn)行腳本時(shí)大小發(fā)生變化的數(shù)組。對(duì)數(shù)組的最初聲明使用 Dim 語(yǔ)句或 ReDim 語(yǔ)句。但是對(duì)于動(dòng)態(tài)數(shù)組,括號(hào)中不包含任何數(shù)字。

例如:

Dim MyArray()
ReDim AnotherArray()
要使用動(dòng)態(tài)數(shù)組,必須隨后使用 ReDim 確定維數(shù)和每一維的大小。在下例中,ReDim 將動(dòng)態(tài)數(shù)組的初始大小設(shè)置為 25,而后面的 ReDim 語(yǔ)句將數(shù)組的大小重新調(diào)整為 30,同時(shí)使用 Preserve 關(guān)鍵字在重新調(diào)整大小時(shí)保留數(shù)組的內(nèi)容。

ReDim MyArray(25)
. . .
ReDim Preserve MyArray(30)
重新調(diào)整動(dòng)態(tài)數(shù)組大小的次數(shù)是沒(méi)有任何限制的,盡管將數(shù)組的大小調(diào)小時(shí),將會(huì)丟失被刪除元素的數(shù)據(jù)。


ReDim 語(yǔ)句
ReDim [Preserve] varname(subscripts) [, varname(subscripts)] . . .

參數(shù)
Preserve
當(dāng)更改現(xiàn)有數(shù)組最后一維的大小時(shí)保留數(shù)據(jù)。
varname
變量名,遵循標(biāo)準(zhǔn)變量命名規(guī)則。
subscripts
數(shù)組變量的維數(shù),最多可以聲明 60 維數(shù)組。subscripts 參數(shù)語(yǔ)法格式如下:
upper [,upper] . . .

數(shù)組的下界總是零。

說(shuō)明
ReDim 語(yǔ)句通常用于指定或修改動(dòng)態(tài)數(shù)組的大小,這些數(shù)組已用帶有空括號(hào)的 Private、Public 或 Dim 語(yǔ)句(沒(méi)有維數(shù)下標(biāo))正式聲明過(guò)??梢灾貜?fù)使用 ReDim 語(yǔ)句更改數(shù)組維數(shù)和元素?cái)?shù)目。

如果使用了 Preserve 關(guān)鍵字,就只能調(diào)整數(shù)組最后維的大小,并且不能改變數(shù)組的維數(shù)。例如,如果數(shù)組只有一維,就可以修改該數(shù)組的大小,因?yàn)樵摼S是最后的也是僅有的一維。但是,如果數(shù)組有兩個(gè)或更多維,就只能改變末維的大小并保留數(shù)組內(nèi)容。

這個(gè)例子說(shuō)明如何不擦掉該數(shù)組中存在的數(shù)據(jù),而增加動(dòng)態(tài)數(shù)組的終止維數(shù)。

ReDim X(10, 10, 10)
. . .
ReDim Preserve X(10, 10, 15)
警告 如果減小數(shù)組的大小,則將丟失被排除的元素中的數(shù)據(jù)。
變量初始化時(shí),數(shù)值變量初始化為 0,字符串變量初始化為零長(zhǎng)度字符串 ("")。在使用引用對(duì)象的變量前,必須使用 Set 語(yǔ)句將某個(gè)現(xiàn)有對(duì)象賦予該變量。在進(jìn)行對(duì)象賦值以前,已聲明的對(duì)象變量有特定值 Nothing。



asp 數(shù)組的大小 LBound 函數(shù)和UBound 函數(shù)

LBound 函數(shù)
返回指定數(shù)組維的最小可用下標(biāo)。

LBound(arrayname[, dimension])
參數(shù)
arrayname
數(shù)組變量名,遵循標(biāo)準(zhǔn)變量命名規(guī)則。
Dimension
指明要返回哪一維下界的整數(shù)。使用 1 表示第一維,2 表示第二維,以此類(lèi)推。如果省略 dimension 參數(shù),默認(rèn)值為 1。
說(shuō)明
LBound 函數(shù)與 UBound 函數(shù)共同使用以確定數(shù)組的大小。使用 UBound 函數(shù)可以找到數(shù)組某一維的上界。

任一維的下界都是 0。

UBound 函數(shù)
返回指定數(shù)組維數(shù)的最大可用下標(biāo)。

UBound(arrayname[, dimension])
參數(shù)
arrayname
必選項(xiàng)。數(shù)組變量名,遵循標(biāo)準(zhǔn)變量命名規(guī)則。
Dimension
可選項(xiàng)。指定返回哪一維上界的整數(shù)。1 表示第一維,2 表示第二維,以此類(lèi)推。如果省略 dimension 參數(shù),則默認(rèn)值為 1。
說(shuō)明
UBound 函數(shù)與 LBound 函數(shù)一起使用,用于確定數(shù)組的大小。使用 LBound 函數(shù)可以確定數(shù)組某一維的下界。

所有維的下界均為 0。對(duì)于有這樣維數(shù)的數(shù)組,UBound 函數(shù)返回以下結(jié)果:

Dim A(100,3,4)

語(yǔ)句 返回值
UBound(A, 1) 100
UBound(A, 2) 3
UBound(A, 3) 4


清除數(shù)組元素 Erase 語(yǔ)句

Erase 語(yǔ)句
重新初始化固定大小數(shù)組的元素,并釋放動(dòng)態(tài)數(shù)組的存儲(chǔ)空間。 www.  asp學(xué)習(xí)網(wǎng)


Erase array
array 參數(shù)是要清除的數(shù)組變量的名稱(chēng)。

說(shuō)明
判斷數(shù)組是固定長(zhǎng)度數(shù)組(常規(guī))還是動(dòng)態(tài)數(shù)組是很重要的,這是因?yàn)? Erase 要根據(jù)數(shù)組的類(lèi)型進(jìn)行不同的操作。Erase 無(wú)需為固定大小的數(shù)組還原內(nèi)存。Erase 按照下表設(shè)置固定數(shù)組的元素:

數(shù)組的類(lèi)型 Erase 對(duì)固定數(shù)組元素的影響
固定數(shù)值數(shù)組 將每個(gè)元素設(shè)置為 0。
固定字符串?dāng)?shù)組 將每個(gè)元素設(shè)置為零長(zhǎng)度字符串 ("")。
對(duì)象數(shù)組 將每個(gè)元素設(shè)置為特殊值 Nothing。

Erase 釋放動(dòng)態(tài)數(shù)組所使用的內(nèi)存。在程序再次引用該動(dòng)態(tài)數(shù)組之前,必須使用 ReDim 語(yǔ)句來(lái)重新定義該數(shù)組變量的維數(shù)。

下面例子舉例說(shuō)明如何使用 Erase 語(yǔ)句。

Dim NumArray(9)
Dim DynamicArray()
ReDim DynamicArray(9) ' 分配存儲(chǔ)空間。
Erase NumArray ' 每一元素都被重新初始化。
Erase DynamicArray ' 釋放數(shù)組占用的內(nèi)存。


過(guò)濾和篩選數(shù)組 Filter 函數(shù)

Filter 函數(shù)
返回下標(biāo)從零開(kāi)始的數(shù)組,其中包含以特定過(guò)濾條件為基礎(chǔ)的字符串?dāng)?shù)組的子集。

Filter(InputStrings, Value[, Include[, Compare]])
參數(shù)
InputStrings
必選項(xiàng)。一維數(shù)組,要在其中搜索字符串。
Value
必選項(xiàng)。要搜索的字符串。
Include
可選項(xiàng)。Boolean 值,指定返回的子字符串是否包含 Value。如果 Include 為 True,F(xiàn)ilter 將返回包含子字符串 Value 的數(shù)組子集。如果 Include 為 False,F(xiàn)ilter 將返回不包含子字符串 Value 的數(shù)組子集。
Compare
可選項(xiàng)。數(shù)字值指出使用的比較字符串類(lèi)型。請(qǐng)參閱值設(shè)置部分。
設(shè)置
Compare 參數(shù)可以有以下值:

常數(shù) 值 描述
vbBinaryCompare 0 執(zhí)行二進(jìn)制比較。
vbTextCompare 1 執(zhí)行文本比較。

說(shuō)明
如果在 InputStrings 中沒(méi)有找到與 Value 匹配的值,F(xiàn)ilter 將返回空數(shù)組。如果 InputStrings 為 Null 或者不是一維數(shù)組,則會(huì)發(fā)生錯(cuò)誤。

由 Filter 函數(shù)返回的數(shù)組僅包含足以包含匹配項(xiàng)數(shù)目的元素。

下面例子利用 Filter 函數(shù)返回包含搜索條件 "Mon" 的數(shù)組:

Dim MyIndex  'www.
Dim MyArray (3)
MyArray(0) = "Sunday"
MyArray(1) = "Monday"
MyArray(2) = "Tuesday"
MyIndex = Filter(MyArray, "Mon") 'MyIndex(0) 包含 "Monday"。


判斷對(duì)象是否為數(shù)組 IsArray 函數(shù)

IsArray 函數(shù)

返回 Boolean 值指明某變量是否為數(shù)組。

IsArray(varname)
varname 參數(shù)可以是任意變量。

說(shuō)明
如果變量是數(shù)組,IsArray 函數(shù)返回 True;否則,函數(shù)返回 False。當(dāng)變量中包含有數(shù)組時(shí),使用 IsArray 函數(shù)很有效。

下面的示例利用 IsArray 函數(shù)驗(yàn)證 MyVariable 是否為一數(shù)組:

Dim MyVariable
Dim MyArray(3)
MyArray(0) = "Sunday"
MyArray(1) = "Monday"
MyArray(2) = "Tuesday"
MyVariable = IsArray(MyArray) ' MyVariable 包含 "True"。


將數(shù)組鏈接為字符串,或者將字符串分解為數(shù)組 join 方法 和 Split 函數(shù)

join 方法

應(yīng)用于: Array 對(duì)象
返回字符串值,其中包含了連接到一起的數(shù)組的所有元素,元素由指定的分隔符分隔開(kāi)來(lái)。

arrayObj.join(separator)
參數(shù)
arrayObj
必選項(xiàng)。Array 對(duì)象。
separator
必選項(xiàng)。是一個(gè) String 對(duì)象,作為最終的 String 對(duì)象中對(duì)數(shù)組元素之間的分隔符。如果省略了這個(gè)參數(shù),那么數(shù)組元素之間就用一個(gè)逗號(hào)來(lái)分隔。
說(shuō)明
如果數(shù)組中有元素沒(méi)有定義或者為 null,將其作為空字符串處理。

示例
下面這個(gè)例子說(shuō)明了 join 方法的用法。

function JoinDemo(){
var a, b;
a = new Array(0,1,2,3,4);
b = a.join("-");
return(b);
}

split請(qǐng)參考上面的文章。


從數(shù)據(jù)庫(kù)中返回?cái)?shù)組

getrows的使用參看

http://www./sql/2006-4-29/NextRecordset_GetRows.htm

http://www./sql/2007-1-16/1910.htm


其他參考:asp數(shù)組排序 http://www./code/2006-5-13/Sort_ary.htm

<%

'asp學(xué)習(xí)網(wǎng) 數(shù)組排序的函數(shù)

Function NewOrder(sz)
Dim ali,icount,i,ii,j,itemp
ali=split(sz,",")
icount=UBound(ali)
For i=0 To icount
For j=icount - 1 To i Step -1
If j+1 <= UBound(ali) Then
If int(ali(j))<int(ali(j+1)) Then
itemp=ali(j)
ali(j)=ali(j+1)
ali(j+1)=itemp
End If
End If
Next
Next
For ii=0 to Ubound(ali)
If ii = Ubound(ali) Then
NewOrder = NewOrder & ali(ii)
Else
NewOrder = NewOrder & ali(ii) & ","
End If
Next
End Function
%>

調(diào)用方法:

<%
str = "234,54,294,2347,653,121,37,34578,4537,53,34,7,2,5768,2"
response.write NewOrder(str)
%>

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多

    国产无摭挡又爽又色又刺激| 俄罗斯胖女人性生活视频| 人妻巨大乳一二三区麻豆| 午夜视频免费观看成人| 黄男女激情一区二区三区| 免费福利午夜在线观看| 高清不卡视频在线观看| 精品久久少妇激情视频| 天堂网中文字幕在线观看| 日韩一级一片内射视频4k| 91在线爽的少妇嗷嗷叫| 青青操精品视频在线观看| 国产激情一区二区三区不卡| 在线九月婷婷丁香伊人| 日本国产欧美精品视频| 91蜜臀精品一区二区三区| 国产综合香蕉五月婷在线| 国产精品久久香蕉国产线| 中文字幕人妻一区二区免费 | 91亚洲国产成人久久| 欧美午夜一级艳片免费看| 日韩高清一区二区三区四区| 精品精品国产欧美在线| 日本一区二区三区黄色| 黄色激情视频中文字幕| 日韩人妻精品免费一区二区三区| 久久免费精品拍拍一区二区| 国产在线不卡中文字幕| 国产专区亚洲专区久久| 亚洲高清欧美中文字幕| 国产成人综合亚洲欧美日韩| 亚洲精品成人午夜久久| 又黄又色又爽又免费的视频| 人妻亚洲一区二区三区| 亚洲精品福利入口在线| 夫妻激情视频一区二区三区| 女厕偷窥一区二区三区在线| 久久精品久久精品中文字幕| 大尺度激情福利视频在线观看| 欧美亚洲综合另类色妞| 一区二区不卡免费观看免费|