อาร์เรย์ ASP เป็นคอนเทนเนอร์ที่ค่อนข้างใช้งานง่ายสำหรับการโหลดข้อมูลจำนวนมาก
1. กำหนดอาร์เรย์
มีสองวิธี: DIM และ REDIM
DIM กำหนดอาร์เรย์ของตัวเลขคงที่และประเภทข้อมูล REDIM แตกต่างกัน สามารถกำหนดข้อมูลประเภทต่างๆ ได้ และยังสามารถกำหนดข้อมูลที่มีหมายเลขไม่คงที่ได้อีกด้วย เปรียบเทียบตัวอย่างต่อไปนี้ ตัวอย่างที่ถูกกฎหมายทั้งหมด:
รหัสโปรแกรม
ดิมมายเรย์(5,2)
รีดไมอาเรย์(5,2)
ตัวอย่างที่สิ่งแรกผิด และอย่างหลังถูกกฎหมาย:
รหัสโปรแกรม
n=10
ดิม ไมอาเรย์(n)
เรดดิม ไมอาเรย์(n,2)
นอกจากนี้ REDIM ยังสามารถกำหนดอาร์เรย์ประเภทที่ไม่ได้กำหนดไว้ได้ เช่น:
รหัสโปรแกรม
เรดดิมมายเรย์(10)
2. จำนวนอาร์เรย์
ตัวห้อยที่ระบุเมื่อกำหนดอาร์เรย์ด้วย DIM หรือ REDIM แสดงถึงตัวห้อยสูงสุดที่อนุญาตเมื่อเข้าถึงอาร์เรย์ แต่ไม่ใช่จำนวนอาร์เรย์ ในความเป็นจริง จำนวนอาร์เรย์หนึ่งมิติจะเท่ากับเสมอ (ตัวห้อยสูงสุด + 1) และการเข้าถึงจะดำเนินการทีละตัวโดยเริ่มจาก 0 ถึงตัวห้อย
ตัวอย่างเช่น:
รหัสโปรแกรม
ดิมมายเรย์(5)
มีองค์ประกอบอาร์เรย์ที่กำหนดไว้ 6 รายการ ได้แก่ :
เนื้อหาอ้างอิง
myarray(0), myarray(1), myarray(2), myarray(3), myarray(4), myarray(5)
อีกตัวอย่างหนึ่ง:
รหัสโปรแกรม
ทำซ้ำอาร์เรย์นี้(2,5)
อันที่จริง มีการกำหนดอาร์เรย์สองมิติของ (2+1)*(5+1)=1 8
ในกรณีนี้ เราสามารถกำหนดอาร์เรย์ที่มีองค์ประกอบเดียวได้อย่างไม่คลุมเครือได้หรือไม่? คำตอบคือ: ไม่
ดังที่ได้กล่าวไปแล้ว
รหัสโปรแกรม
ทำซ้ำอาร์เรย์นี้(1)
อาร์เรย์ที่กำหนดจริง ๆ แล้วมีองค์ประกอบอาร์เรย์ (1+1) แต่ดูเหมือนว่า:
รหัสโปรแกรม
ทำซ้ำอาร์เรย์นี้(0)
ไวยากรณ์ไม่ถูกต้อง ดังนั้นคุณไม่สามารถกำหนดอาร์เรย์ด้วยองค์ประกอบอาร์เรย์เพียงรายการเดียวได้ อันที่จริง สิ่งที่กล่าวมาข้างต้นเป็นเพียงสถานะเริ่มต้นเท่านั้น ในความเป็นจริง เมื่อกำหนดอาร์เรย์ คุณสามารถกำหนดจำนวนอาร์เรย์และแม้แต่หมายเลขเริ่มต้นและสิ้นสุดของตัวห้อยได้โดยการกำหนดจุดเริ่มต้นและจุดสิ้นสุดของตัวห้อย ตัวอย่างเช่น:
รหัสโปรแกรม
ทำซ้ำอาร์เรย์นี้ (1980 ถึง 1990)
อาร์เรย์ที่มี 11 องค์ประกอบถูกกำหนดไว้ โดยมีตัวห้อยตั้งแต่ปี 1980 ถึง 1990
3. เกี่ยวกับฟังก์ชัน UBOUND
UBOUND ส่งคืนตัวห้อยสูงสุดของอาร์เรย์หนึ่งมิติ ไม่ใช่จำนวนองค์ประกอบ ตัวอย่างเช่น:
รหัสโปรแกรม
ดิม เมียร์เรย์(5)
,ดังนั้น
รหัสโปรแกรม
UBOUND(มายร์เรย์)
ค่าที่ส่งคืนคือ 5 ไม่ใช่ 6 UBOUND ยังสามารถนำไปใช้กับอาร์เรย์สองมิติได้ เมื่อนำไปใช้กับอาร์เรย์สองมิติ จะส่งกลับค่าสูงสุดของดัชนีแรก
ตัวอย่างเช่น:
รหัสโปรแกรม
ดิม เมียร์เรย์(6,3)
, ดังนั้น
รหัสโปรแกรม
UBOUND(มายร์เรย์)
ค่าที่ส่งคืนคือ 6 ไม่ใช่ 7 ไม่ต้องพูดถึง 18 (6*3=18)
หากต้องการส่งกลับค่าสูงสุดของตัวห้อยที่สอง ให้ใช้:
รหัสโปรแกรม
UBOUND(มายร์เรย์,2)
-
ฟังก์ชันอื่นที่สอดคล้องกับ UBOUND คือ LBOUND ซึ่งส่งคืนตัวห้อยขั้นต่ำของอาร์เรย์ เช่นเดียวกับ UBOUND LBOUND(Myarray,2) จะส่งกลับค่าต่ำสุดของตัวห้อยตัวที่สองของอาร์เรย์ MYARRAY เพื่อให้ชัดเจนยิ่งขึ้น จำนวนองค์ประกอบของอาร์เรย์ Myarray หนึ่งมิติคือ:
รหัสโปรแกรม
UBOUND(มายอาร์เรย์)-LBOUND(มายอาร์เรย์)+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()
สำหรับฉัน = 0 ถึง 10
ReDim สำรอง MyArray(i)
MyArray(i)=i
ต่อไป
แยกสตริงและส่งกลับอาร์เรย์ของผลลัพธ์การแยก
รหัสโปรแกรม
DimMyArray
MyArray = แยก(tempcnt,chr(13)&chr(10))
สำหรับ I = Lbound(MyArray) ถึง Ubound(MyArray)
การตอบสนองเขียน MyArray(I) & <br>
ต่อไป
5. ฟังก์ชั่นการเรียงลำดับอาร์เรย์
รหัสโปรแกรม
ฟังก์ชันการเรียงลำดับ(ary)
KeepChecking = จริง
ทำจนกระทั่ง KeepChecking = FALSE
KeepChecking = FALSE
สำหรับ I = 0 ถึง UBound(ary)
ถ้าฉัน = UBound(ary) ให้ออกจาก For
ถ้า ary(I) > ary(I+1) แล้ว
ค่าแรก = ary(I)
ค่าที่สอง = ary(I+1)
ary(I) = ค่าที่สอง
ary(I+1) = ค่าแรก
KeepChecking = จริง
สิ้นสุดถ้า
ต่อไป
วนซ้ำ
เรียงลำดับ = อารีย์
ฟังก์ชันสิ้นสุด
ตัวอย่างการใช้งานฟังก์ชันการเรียงลำดับอาร์เรย์
รหัสโปรแกรม
DimMyArray
MyArray = อาร์เรย์(1,5,123,12,98)
MyArray = เรียงลำดับ (MyArray)
สำหรับ I = Lbound(MyArray) ถึง Ubound(MyArray)
การตอบสนองเขียน 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.เขียน (col, แถว) & <br>
ต่อไป
ต่อไป