ASP 配列は、大量のデータをロードするための比較的使いやすいコンテナです。
1. 配列を定義する
DIM と REDIM の 2 つの方法があります。
DIM は固定数とデータ型の配列を定義しますが、REDIM はさまざまな種類のデータを定義でき、数が固定されていないデータも定義できます。次の例を比較してください。 すべて合法的な例:
プログラムコード
ディム myarray(5,2)
myarray(5,2) をリディムします
前者が間違っていて後者が合法である例:
プログラムコード
n=10
ディム myarray(n)
myarray(n,2) をリディムします
さらに、REDIM では、次のような未定義のタイプの配列も定義できます。
プログラムコード
myarray を赤くする(10)
2. アレイの数
DIM または REDIM で配列を定義するときに指定した添字は、配列にアクセスするときに許可される最大の添字を表しますが、配列の数ではありません。実際には、1 次元配列の数は常に (最大添字 + 1) に等しく、アクセスは 0 から添字まで 1 つずつ実行されます。
例えば:
プログラムコード
ディム myarray(5)
定義された配列要素は次の 6 つです。
見積内容
myarray(0)、myarray(1)、myarray(2)、myarray(3)、myarray(4)、myarray(5)
別の例:
プログラムコード
この配列(2,5)をリディムします
実際には、(2+1)*(5+1)=1 8 という 2 次元配列が定義されます。
この場合、要素が 1 つだけある配列を明確に定義できますか?答えは「いいえ」です。
前述したように、
プログラムコード
この配列をリディム(1)
定義された配列には実際には (1+1) 個の配列要素がありますが、次のようになります。
プログラムコード
この配列をリディムします(0)
構文が間違っています。したがって、配列要素を 1 つだけ含む配列を定義することはできません。 実際、上記はデフォルトの状態にすぎません。実際、配列を定義するときは、添字の開始と終了を定義することで、配列の数、さらには添字の開始番号と終了番号を定義できます。例えば:
プログラムコード
この配列をリディムします(1980 ~ 1990)
11 個の要素を含む配列が定義されており、添字は 1980 から 1990 までです。
3. UBOUND関数について
UBOUND は、要素の数ではなく、1 次元配列の最大添字を返します。 例えば:
プログラムコード
ディムマイアレイ(5)
、それで
プログラムコード
UBOUND(My配列)
返される値は 6 ではなく 5 です。 UBOUND は 2 次元配列にも適用できます。 2 次元配列に適用すると、最初のインデックスの最大値が返されます。
例えば:
プログラムコード
ディムマイアレイ(6,3)
、 それで
プログラムコード
UBOUND(My配列)
戻り値は 6 であり、7 ではなく、ましてや 18 (6*3=18) です。
2 番目の添字の最大値を返すには、次を使用します。
プログラムコード
UBOUND(Myarray,2)
。
UBOUND に対応するのは別の関数 LBOUND で、配列の最小添字を返します。 UBOUND と同様に、LBOUND(Myarray,2) は、配列 MYARRAY の 2 番目の添字の最小値を返します。したがって、正確には、1 次元配列 Myarray の要素の数は次のようになります。
プログラムコード
UBOUND(My配列)-LBOUND(My配列)+1
、二次元配列の要素の数は次のとおりです。
プログラムコード
(UBOUND(Myarray)-LBOUND(Myarray)+1)*(UBOUND(Myarray,2)-LBOUND(Myarray,2)+1)
http://www.knowsky.com/
多次元配列など。
4. 配列の定義
プログラムコード
DimMyArray
MyArray = 配列(1,5,123,12,98)
拡張可能なアレイ
プログラムコード
DimMyArray()
i = 0 ~ 10 の場合
ReDim PReserve MyArray(i)
MyArray(i)=i
次
文字列を分割し、分割結果の配列を返します。
プログラムコード
DimMyArray
MyArray = Split(tempcnt,chr(13)&chr(10))
I = Lbound(MyArray) から Ubound(MyArray) の場合
Response.Write MyArray(I) & <br>
次
5. 配列ソート機能
プログラムコード
関数ソート(ary)
KeepChecking = TRUE
KeepChecking = FALSEになるまで実行
KeepChecking = FALSE
I = 0 から UBound(ary) の場合
I = UBound(ary) の場合は終了します
ary(I) > ary(I+1) の場合
FirstValue = ary(I)
SecondValue = ary(I+1)
ary(I) = SecondValue
ary(I+1) = FirstValue
KeepChecking = TRUE
終了の場合
次
ループ
並べ替え = 配列
終了機能
配列ソート機能の応用例
プログラムコード
DimMyArray
MyArray = 配列(1,5,123,12,98)
MyArray = ソート(MyArray)
I = Lbound(MyArray) から Ubound(MyArray) の場合
Response.Write MyArray(I) & <br>
次
6. アプリケーションとセッションで配列を使用する
プログラムコード
アプリケーション.ロック
アプリケーション(StoredArray) = MyArray
アプリケーション.ロック解除
LocalArray = アプリケーション(StoredArray)
アプリケーション内の配列を上書きする
プログラムコード
アプリケーション.ロック
アプリケーション(StoredArray) = LocalArray
アプリケーション.ロック解除
セッションの使用法はアプリケーションと同じです
7. データベースからアレイにデータをインポートします
この方法は、私がコードの関数統合でよく使用します。
プログラムコード
DimMyArray
すべてのレコードを取得する
MyArray = RS.GetRows
最初の 10 レコードを取得する
MyArray = RS.GetRows(10)
行 = 0 から UBound(MyArray, 2) の場合
Col = 0 から UBound(MyArray, 1) の場合
Response.Write (列、行) & <br>
次
次