Danh mục

GIỚI THIỆU VỀ AUTOIT-Lập Trình Trên AutoIT part 5

Số trang: 5      Loại file: pdf      Dung lượng: 142.28 KB      Lượt xem: 7      Lượt tải: 0    
tailieu_vip

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tham khảo tài liệu giới thiệu về autoit-lập trình trên autoit part 5, công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
GIỚI THIỆU VỀ AUTOIT-Lập Trình Trên AutoIT part 5  cũng dùng để chỉ định phạm vi  chỉ định tên mảng  chỉ định số dòng tối đa  chỉ định số cột tối đaVí 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 4CÁC VẤN ĐỀ LIÊN QUANVấn đề 1 : Khởi tạo giá trị cho mảngKhi 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 trongmả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ảngSẽ 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êntrong. 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êuphầ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ửdụng hàm UBound là một lời giải vì nó sẽ cho biết một mảng được chỉ định có baonhiêu phần tử. Cú pháp như sau : UBound( $array, $dimension)Trong đó,$array : là tên của một biến mảng$dimension : cho biết cần lấy ở chiều thứ mấy. Mặc định là 1, tức mảng mộtchiều. Nếu gán bằng 0, thì UBound không trả về tổng số phần tử hiện có, mà sẽ trảvề một số tương ứng với số chiều của mảng.Ví dụ : Dim $myArray[10][20] ;element 0,0 to 9,19 $rows = UBound($myArray) ; lấy chiều thứ nhất $cols = UBound($myArray, 2) ; lấy chiều thứ hai $dims = UBound($myArray, 0) ; lấy số chiều của mảng $info = This Array has & $dims & dimension(s) : &@CRLF & _ $rows & rows, & $cols & columns MsgBox(0, Msg of Array, $info)Dấu _ đặt ở cuối dòng lệnh $info = ... cho biết, phần tiếp theo của dòng lệnh hiệnhành được viết ở dòng kế tiếp. Thông thường việc này xảy ra do một lệnh quá dài,khi viết trên một dòng thì vượt quá trang màn hình, rất khó quan sát. Cho nên cáchnày được dùng như một giải pháp.Vấn đề 3 : Thiết lập lại kích thước của một mảngTheo qui định, nếu muốn sử dụng một biến mảng thì trước đó phải khai báo tên, sốchiều và kích thước tối đa để chứa các phần tử. Trong trường hợp bạn muốn địnhlại kích thước cho mảng đó (tăng hoặc giảm kích thước) thì việc bạn cần làm là sửdụng từ khóa ReDim . Cú pháp chung : ReDim $array [new index 1] ... [new index n]$array : là tên của mảng cần định lại kích thướcNew index : kích thước mới cho tổng số phần tử đối đa sẽ có trong mảng. [newindex n] áp dụng cho chiều thứ n của mảng.Bạn xem ví dụ sau để hiểu rõ hơn cách thức làm việc. Đoạn mã bên dưới sẽ minhhọ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ủamả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 Forthứ 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ềucủ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ộtchỉ 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ácphầ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à haichiều. ; khởi tạo và in giá trị cho mảng một chiều Dim $a[10] ConsoleWrite(---- A list : & @crlf) For $i=0 To 9 $a[$i] = Int(Random(0, 100)) ConsoleWrite($a[$i] & ) Next ; khởi tạo và in giá trị cho mảng hai chiều Dim $m [4] [5] ConsoleWrite(@crlf & ---- A matrix : & @crlf) For $i=0 To 3 For $j=0 to 4 $m[$i][$j] = Int(Random(0,10)) ConsoleWrite($m[$i][$j] & ) Next ConsoleWrite(@crlf) Next+ Theo lý thuyết, các phần tử trong mảng phải có cùng kiểu dữ liệu, hoặc là số,hoặc là chuỗi. Nhưng trong AutoIt, một mảng có thể chứa mọi thứ, từ một số chođến một boolean. Nói đơn giản là có thể chứa các phần tử có kiểu dữ liệu khácnhau. Tuy nhiên, điều này không được khuyến khích. Ví dụ : $arr[0] = 1 $arr[1] = true $arr[2] = my text $arr[3] = $another_array+ Một mảng trong AutoIt chỉ cho phép chứa tối đa 224 (16 777 216) phần tử.MACROMacro hiểu đơn giản là các lệnh ngắn gọn được thiết kế sẵn để lấy các thông tin từhệ thống hoặc ứng dụng. Giá trị của chúng có thể không cố định vì phụ thuộc vàovào hệ thống. Trong AutoIt, các macro được bắt đầu với ký tự @ và theo sau têncủa macro. Bên dưới là các Macro thường được dùng .Macro thời gi ...

Tài liệu được xem nhiều: