<scope> cũng dùng để chỉ định phạm vi
<var_name> chỉ định tên mảng
<size_row> chỉ định số dòng tối đa
<size_column> chỉ định số cột tối đa
Ví dụ :
Error!
Dim $matrix[2][3] ; tạo một ma trận có 2 dòng và 3 cột
$matrix[0][0] = 2
$matrix[0][1] = 4
$matrix[0][2] = 6
$matrix[1][0] = 1
$matrix[1][1] = 3
$matrix[1][2] = 5
Để truy cập đến một phần tử trong mảng ta cũng sử dụng chỉ mục cho dòng và cột.
Ví dụ :
; đang truy cập đến phần tử ở dòng thứ nhất, cột thứ hai.
$n = $matrix[0][1] ; $n sẽ bằng 4
CÁC VẤN ĐỀ LIÊN QUAN
Vấn đề 1 : Khởi tạo giá trị cho mảng
Khi khai báo một mảng bạn cũng có thể khởi tạo giá trị cho các phần tử bên trong
mảng. Các giá trị khi khởi tạo cho mảng phải được nằm trong cặp dấu ngoặc vuông
[ ], và mỗi giá trị phải được ngăn cách bởi dấu phẩy. Đối với mảng hai chiều thì
cần thêm một cặp dấu ngoặc vuông khác để rào các giá trị có cùng chỉ mục dòng.
Ví dụ :
Dim $array[5] = [10, 20, 30, 40, 50]
Local $test[4] = ["a", "Hello", 500, 4.55]
Global $Grid[2][3] = [["sun", "moon", "earth"], [1000, cos(0), sqrt(900)]]
Vấn đề 2 : Lấy tổng số phần tử hiện có trong mảng
Sẽ có không ít tình huống bạn tiếp nhận và xử lý một mảng có nhiều phần tử bên
trong. Tuy nhiên có một rắc rối là bạn không biết mảng này hiện đang có bao nhiêu
phần tử, vì nó thay đổi theo chu kỳ hay một lý do nào đó. Với trường hợp này, sử
họa việc thiết lập lại kích thước tối đa cho mảng một chiều.
; khai báo kích thước ban đầu
Dim $a[5] = [2, 4, 6, 8, 10]
ConsoleWrite("Before : ")
For $i=0 to UBound($a)-1
ConsoleWrite($a[$i] & " ")
Next
; Định lại kích thước mảng
ReDim $a[3]
ConsoleWrite(@crlf & "After rediming : " )
For $i=0 To 2
ConsoleWrite($a[$i] & " ")
Next
Đầu tiên ta khai báo mảng $a có năm phần tử, sau đó dùng vòng lặp For thứ nhất
để in nội dung ra console. Đến dòng lệnh ReDim $a[3] sẽ định lại kích thước của
mảng từ ban đầu là năm phần tử xuống còn ba phần tử. Khi kích thước mới nhỏ
hơn kích thước cũ, thì phần nội dung phía sau sẽ bị cắt bỏ. Cho nên vòng lặp For
thứ hai sẽ chỉ in các giá trị 2, 4 và 6.
Chú ý : Khi thiết lập lại kích thước cho một biến mảng, nếu bạn thay đổi số chiều
của mảng từ mảng một chiều thành hai chiều, hoặc ngược lại, thì tất cả dữ liệu
đang có trong mảng sẽ bị xóa hoàn toàn.
Vấn đề 4 : Các chú ý
+ Chỉ mục của mảng có thể là một biến hoặc một biểu thức, sao cho nó trả về một
chỉ mục hợp lệ. Vì thế bạn có thể làm nhiều cách khác nhau để truy xuất đến các
phần tử bên trong mảng. Cũng xin nhắc lại rằng, tất cả các mảng đều có 0 làm chỉ
mục cho phần tử thứ nhất.
Ví dụ sau minh họa cho việc khởi tạo các giá trị ngẫu nhiên cho mảng một và hai
chiều.
; khởi tạo và in giá trị cho mảng một chiều
Dim $a[10]
của macro. Bên dưới là các Macro thường được dùng .
Macro thời gian
@MSEC
Mili giây hiện tại của đồng hồ hệ thống. Vùng giá trị từ 00 đến 999
@SEC
Giây hiện tại. Vùng giá trị từ 00 đến 59
@MIN
Phút hiện tại. Vùng giá trị từ 00 đến 59
@HOUR
Giờ hiện tại, theo dạng 24 giờ. Vùng giá trị từ 00 đến 23
@MDAY
Ngày hiện tại trong tháng. Vùng giá trị từ 01 đến 31
@MON
Tháng hiện tại. Vùng giá trị từ 01 đến 12
@YEAR
Bốn ký số của năm hiện hành