อาร์เรย์ที่กล่าวถึงในบทความนี้เป็นคำจำกัดความของอาร์เรย์ใน Visual Basic ซึ่งมีค่าอ้างอิงบางอย่างสำหรับการเขียนโปรแกรม ASP
อาร์เรย์คือการรวบรวมข้อมูลที่สั่งซื้อ องค์ประกอบในอาร์เรย์อาจไม่ได้อยู่ในชนิดข้อมูลเดียวกัน ใช้ชื่ออาร์เรย์แบบครบวงจรและตัวห้อยเพื่อกำหนดองค์ประกอบในอาร์เรย์ที่ไม่ซ้ำกัน ตัวห้อยของอาร์เรย์ถูก จำกัด และแบ่งออกเป็นขอบเขตล่างและขอบเขตบน สามารถประกาศอาร์เรย์ได้ด้วยสลัวส่วนตัวสาธารณะหรือแบบคงที่และรูปแบบไวยากรณ์ของพวกเขาเหมือนกัน ต่อไปนี้เป็นเพียงวิธีการประกาศอาร์เรย์โดยใช้ DIM
1. คำจำกัดความและการประกาศของอาร์เรย์
คำจำกัดความไวยากรณ์ของอาร์เรย์มีดังนี้:
ชื่ออาร์เรย์หรี่ ([[ตัวห้อยต่ำกว่าที่ต่ำกว่า] ขอบเขตตัวห้อยส่วนบน]) [เป็นประเภทข้อมูล]
ตัวอย่างเช่น (สมมติว่าขอบเขตล่างเริ่มต้นของอาร์เรย์ในโมดูลปัจจุบันคือ 0)):
① dim A (10) เป็นจำนวนเต็ม
หมายความว่าชื่ออาร์เรย์คือ A. ขอบเขตล่างของตัวห้อยอาร์เรย์นี้คือค่าเริ่มต้น 0, ขอบเขตบนของตัวห้อยคือ 10 และมีองค์ประกอบประเภทจำนวนเต็ม 11 ชนิดจาก A (0), A (1) ถึง A (10)
② dim b (1 ถึง 20) เป็นจำนวนเต็ม
หมายความว่าชื่ออาร์เรย์คือ B. ขอบเขตล่างของอาร์เรย์นี้คือ 1 ขอบเขตบนของตัวห้อยคือ 20 และมี 20 องค์ประกอบของจำนวนเต็มประเภทจาก B (1) ถึง B (20)
③dim Dayarray (50)
บ่งชี้ว่า DayArray เป็นอาร์เรย์ตัวแปรที่มีองค์ประกอบ 51 รายการ (จาก 0 ถึง 50)
④dimเมทริกซ์ (3, 4) เป็นจำนวนเต็ม
ระบุว่าเมทริกซ์เป็นอาร์เรย์จำนวนเต็มสองมิติ
mymatrix Dim (1 ถึง 5, 4 ถึง 9, 3 ถึง 5) เป็นสองเท่า
บ่งชี้ว่า MyMatrix เป็นอาร์เรย์คู่สามมิติที่ระบุขอบเขตบนและล่างอย่างชัดเจน
⑥วันเกิด (1 ถึง 10) เป็นวันที่
ระบุว่าวันเกิดเป็นอาร์เรย์ประเภทวันที่ที่มีดัชนีตั้งแต่ 1 ถึง 10
2. คำสั่งฐานตัวเลือก
คำสั่งพื้นฐานตัวเลือกใช้ที่ระดับโมดูลและใช้เพื่อประกาศขอบเขตล่างเริ่มต้นของตัวห้อยอาร์เรย์
ไวยากรณ์ของคำสั่งฐานตัวเลือกมีดังนี้:
ตัวเลือกฐาน {0 | 1}
หมายเหตุ: ขอบเขตล่างของอาร์เรย์คือ 0 โดยค่าเริ่มต้นและไม่จำเป็นต้องใช้คำสั่ง BASE ตัวเลือก หากคุณใช้คำสั่งนี้เพื่อระบุอาร์เรย์ที่ต่ำกว่าขอบเขต 1 คุณต้องใช้คำสั่ง BASE ตัวเลือกก่อนการประกาศอาร์เรย์ของโมดูล
สังเกต:
(1) คำสั่งในการสลัว, ส่วนตัว, สาธารณะ, redim และคงที่เป็นวิธีที่ยืดหยุ่นมากขึ้นในการควบคุมตัวห้อยของอาร์เรย์ อย่างไรก็ตามหากขอบเขตล่างไม่ได้ระบุไว้อย่างชัดเจนโดยใช้ประโยค TO คุณสามารถตั้งค่าขอบเขตล่างเริ่มต้นเป็น 1 โดยใช้ฐานตัวเลือก ขอบเขตล่างของอาร์เรย์ที่สร้างขึ้นโดยใช้ฟังก์ชั่นอาร์เรย์จะถูกกำหนดโดยขอบเขตล่างที่ระบุโดยคำสั่ง BASE ตัวเลือกเว้นแต่ว่าอาร์เรย์จะผ่านการรับรองโดยชื่อไลบรารีประเภท (เช่น VBA.Array) หากผ่านการรับรองชื่อชื่อไลบรารีประเภท อาร์เรย์ที่สร้างขึ้นโดยใช้ฟังก์ชั่นอาร์เรย์ถูกกำหนดโดยชื่อของฟังก์ชันอาร์เรย์
(2) คำสั่ง BASE ตัวเลือกจะมีผลเฉพาะขอบเขตล่างของอาร์เรย์ที่อยู่ในโมดูลที่มีคำสั่ง
บันทึกบางอย่างเกี่ยวกับการประกาศอาร์เรย์:
ultion กฎการตั้งชื่อชื่ออาร์เรย์เหมือนกับชื่อตัวแปร
②ชื่ออาร์เรย์ถูกห่อหุ้มด้วยวงเล็บและไม่สามารถใช้วงเล็บสี่เหลี่ยมจัตุรัสซึ่งแตกต่างจากภาษา C
③ขอบเขตล่างของตัวห้อยต้องไม่มากกว่าขอบเขตบน
④คุณสามารถใช้ชื่อตัวแปรหรือชื่อคงที่ (และตัวเลขจริง) เป็นขอบเขตสำหรับตัวห้อย เมื่อขอบเขตของดัชนีเป็นชื่อคงที่ขนาดของอาร์เรย์จะได้รับการแก้ไข ค่าของตัวแปรในระหว่างการดำเนินการโปรแกรม ดังนั้นอาร์เรย์ใน VB สามารถแบ่งออกเป็นสองประเภท: อาร์เรย์คงที่และอาร์เรย์แบบไดนามิก
3. อาร์เรย์คงที่
อาร์เรย์แบบคงที่หมายความว่าจำนวนองค์ประกอบอาร์เรย์ได้รับการแก้ไขและไม่เปลี่ยนแปลงนั่นคือขนาดของพื้นที่หน่วยความจำที่พวกเขาครอบครองนั้นได้รับการแก้ไขและไม่เปลี่ยนแปลง ขึ้นอยู่กับขนาดที่แตกต่างกันของอาร์เรย์ขนาดคงที่สามารถแบ่งออกเป็นอาร์เรย์หนึ่งมิติและอาร์เรย์หลายมิติ
รูปแบบไวยากรณ์สำหรับการประกาศอาร์เรย์หลายมิติคือ:
ชื่ออาร์เรย์หรี่ ([รายการขอบเขตตัวห้อย]) [เป็นประเภทข้อมูล]
รูปแบบคำจำกัดความของขอบเขตตัวห้อย: [ขอบเขตล่างตัวห้อยต่ำถึง] ขอบเขตส่วนบนตัวห้อย
รายการขอบเขตตัวห้อยหมายถึงขอบเขตตัวห้อยของแต่ละมิติของอาร์เรย์ที่คั่นด้วยเครื่องหมายจุลภาคนั่นคือ
[Subscript Lower Bound to] ขอบเขตส่วนบนตัวห้อย, [subscript ล่างที่ต่ำกว่า] ขอบเขตส่วนบนตัวห้อย, ... , [subscript ต่ำกว่าที่ต่ำกว่า] bound Upper Subscript
(มิติแรก) (มิติที่สอง) (มิติที่ n)
เมื่อ n = 1 อาร์เรย์เรียกว่าอาร์เรย์หนึ่งมิติ;
ตัวอย่างต่อไปนี้ใช้เพื่อแนะนำการใช้อาร์เรย์หนึ่งมิติ
'ประกาศอาร์เรย์สตริงที่มีความยาว 51 FriendsName
Dim FriendsName (50) เป็นสตริง
'ประกาศอาร์เรย์จำนวนเต็มทั่วโลกที่มีความยาว 11
ชั้นเรียนสาธารณะ (10) เป็นจำนวนเต็ม
จำนวนองค์ประกอบในอาร์เรย์หนึ่งมิติคือ (ขอบเขตขอบเขตต่ำสุด+1)
ในการกำหนดค่าเริ่มต้นให้กับอาร์เรย์สามารถใช้คำสั่งลูปได้เช่น:
Dim I เป็นจำนวนเต็ม
สำหรับ i = 0 ถึง 11 'การควบคุมการใช้งานการไหลของโปรแกรมของคำสั่งลูป
c (i) = i
ต่อไปฉัน
หากขอบเขตที่ต่ำกว่าตัวห้อยไม่ได้ระบุไว้อย่างชัดเจนขอบเขตต่ำกว่าตัวห้อยของอาร์เรย์จะถูกควบคุมโดยคำสั่งฐานตัวเลือก หากไม่มีคำสั่ง BASE ตัวเลือกขอบเขตล่างเป็นค่าเริ่มต้นเป็น 0
ขนาดของอาร์เรย์ไม่ จำกัด เพียง 2 ใน VB สามารถขยายได้เป็น 60 ในการใช้งานจริงมีแอปพลิเคชันไม่มากสำหรับอาร์เรย์ที่อยู่เหนือสามมิติ เมื่อกำหนดอาร์เรย์หลายมิติคุณต้องใช้คำสั่ง DIM เพื่อระบุขอบเขตตัวห้อยทั้งหมดของอาร์เรย์ ตัวอย่างเช่น:
กำไรสลัว (16,10,12) เป็นสกุลเงิน
อาร์เรย์กำไรนี้สามารถใช้เพื่อแสดงผลกำไรของห้างสรรพสินค้าที่มีชื่อร้านค้าแผนกและเดือนเป็นพารามิเตอร์ ตัวอย่างเช่น: กำไร (2,8,11) แสดงถึงกำไรของแผนกที่แปดของสาขาที่สองในเดือนพฤศจิกายน
4. อาร์เรย์แบบไดนามิก
บางครั้งก่อนที่อาร์เรย์จะเริ่มใช้งานมันเป็นไปไม่ได้ที่จะรู้ว่าจำเป็นต้องใช้อาร์เรย์ขนาดใหญ่เพียงใดเพื่อตอบสนองความต้องการที่แท้จริง แน่นอนว่าขนาดของอาร์เรย์สามารถกำหนดขนาดใหญ่พอที่จะตอบสนองความต้องการแอปพลิเคชันที่ใช้งานได้จริง หากคุณใช้อาร์เรย์แบบไดนามิกคุณสามารถกำหนดขนาดของอาร์เรย์ได้อย่างถูกต้องตามความต้องการที่แท้จริงเมื่อโปรแกรมทำงาน
เมื่อประกาศอาร์เรย์การไม่ให้รายการมิติคือการประกาศอาร์เรย์เป็นอาร์เรย์แบบไดนามิก ตัวอย่างเช่น:
Dim Myarry () เป็นจำนวนเต็ม
ก่อนที่จะใช้อาร์เรย์แบบไดนามิกจะต้องนิยามใหม่โดยใช้คำสั่ง REDIM ตามที่อาร์เรย์ myarry ประกาศไว้ก่อนหน้านี้คุณสามารถใช้คำสั่งต่อไปนี้เพื่อกำหนดเป็นอาร์เรย์สองมิติแบบไดนามิก
Redim Myarry (10,10)
นอกจากนี้คุณยังสามารถกำหนดอาร์เรย์แบบไดนามิกหลายครั้งโดยดำเนินการซ้ำคำสั่ง REDIM ซ้ำ ๆ มิติสูงสุดของอาร์เรย์ที่สามารถกำหนดได้โดยใช้ Redim คือ 60 คำสั่ง REDIM สามารถเปลี่ยนจำนวนองค์ประกอบต่อมิติของอาร์เรย์ แต่ไม่สามารถเปลี่ยนจำนวนมิติได้ ต่อไปนี้เป็นตัวอย่างของแอปพลิเคชันมาตรฐานของคำสั่ง REDIM
หรี่
Redim Myarry (30,20,10) 'redefine array'
Redim Myarry (50,23,21) 'กำหนดอาร์เรย์ใหม่อีกครั้ง
ไวยากรณ์ของ Redim นั้นเหมือนกับ Dim's และยังมีตัวเลือกของคำหลักที่เก็บรักษาไว้:
Redim Preserve Array Name ([[[Subscript Lower Bound to] Subscript Upper Bound]) [เป็นประเภทข้อมูล]
ตัวอย่างเช่น:
-
- Redimmyarry (50,23,21)
- Redimpreservemyarry (50,23,50)