Chun đề ngơn ngữ lập trình AutoIt Trang 146 có trước khi thay đổi kích thước.

Một phần của tài liệu Chuyên đề ngôn ngữ lập trình autoit (Trang 146 - 149)

có trước khi thay đổi kích thước.

Ví dụ : Dim $I, $K, $T, $MSG

Dim $X[4][6], $Y[4][6] For $I = 0 To 3

For $K = 0 To 5

$T = Int(Random(20) + 1) ; trả về số ngẫu nhiên từ 1 đến 20 $X[$I][$K] = $T $Y[$I][$K] = $T Next Next ReDim $X[3][8] Dim $Y[3][8] $MSG = ""

; hiển thị các giá trị của phần tử mảng X

For $I = 0 To UBound($X, 1) - 1 For $K = 0 To UBound($X, 2) - 1 If $K > 0 Then $MSG = $MSG & ", " $MSG = $MSG & $X[$I][$K] Next $MSG = $MSG & @CR Next

MsgBox(0, "ReDim Demo", $MSG) $MSG = ""

; hiển thị các giá trị của phần tử mảng X

For $I = 0 To UBound($Y, 1) - 1 For $K = 0 To UBound($Y, 2) - 1 If $K > 0 Then $MSG = $MSG & ", " $MSG = $MSG & $Y[$I][$K] Next $MSG = $MSG & @CR Next

MsgBox(0, "ReDim Demo", $MSG)

Ngay sau khi bạn chạy ví dụ trên, bạn sẽ thấy phần tử của mảng X vẫn giữ lại giá trị sau khi thay đổi kích thước. Riêng mảng Y do khai báo với từ khóa Dim nên các giá trị của mảng đã bị xóa sạch hết sau khi thay đổi kích thước và do đó bạn sẽ thấy khi hiển thị phần tử của mảng Y sẽ khơng có gì hết.

12. ExitLoop [level]

- Cơng dụng : thốt khỏi vịng lặp While/Do/For.

Chuyên đề ngôn ngữ lập trình AutoIt Trang 147 lặp lồng nhau. Mặc định là 1, tức là vòng lặp chứa chỉ thị ExitLoop sẽ thoát. lặp lồng nhau. Mặc định là 1, tức là vòng lặp chứa chỉ thị ExitLoop sẽ thốt.

Ví dụ : $sum = 0

While 1 = 1

While 1 ;dùng vịng lặp vơ lận cho đến khi chỉ thị ExitLoop được gọi $ans = InputBox("Running total=" & $sum, _

" Enter a positive number. (A negative number exits)") If $ans < 0 Then ExitLoop 2

$sum = $sum + $ans WEnd

MsgBox(0, "ExitLoop", "Da Thoat vong lap ""while 1""") WEnd

MsgBox(0,"The sum was", $sum)

Đoạn chương trình trên sẽ cho người dùng nhập các con số vào hộp InputBox sau đó tính tổng các số vừa nhập vào. Chương trình bắt đầu hiển thị kết quả tổng sau khi người dùng nhập số âm. Trong chỉ thị ExitLoop 2 bạn thấy trong ví dụ, chỉ thị đó sẽ làm cho vịng lặp “While 1 =1” thốt.

Những câu hỏi thường gặp khi lập trình AutoIt

Phần này trình bày cho bạn một số câu hỏi thường gặp khi sử dụng ngơn ngữ lập trình AutoIt trên diễn đàn của những người sử dụng AutoIt trên trang http://www.autoitscript.com/forum/. Nếu bạn khơng tìm thấy những câu hỏi mình thắc mắc ở đây, bạn có thể vào trang web ở trên để tham gia thảo luận với các thành viên khác của diễn đàn.

1. Tại sao tôi không thể chạy những đoạn mã AutoIt v2.64 trên phiên bản v3 ? Phiên bản v3 của AutoIt có một số khác biệt về cấu trúc ngôn ngữ so với phiển bản v2.64. Các phiên bản trước đó của AutoIt thường được dùng để viết các đoạn mã lệnh đơn giản nhằm mục đích cài đặt phần mềm. Tuy nhiên theo thời gian, người dùng AutoIt đã dùng mã lệnh của ngơn ngữ này để lập trình cho các tác vụ tự động hóa ngày càng phức tạp. Cú pháp và cấu trúc của ngôn ngữ trong phiên bản cũ của AutoIt có thể thực hiện những tác vụ đó tuy nhiên nó gây ra một số khó khăn cho những người lập trình và khá rườm rà. Để cho ngơn ngữ AutoIt có thể thực hiện các tác vụ tự động hóa nói chung và phù hợp hơn thì phiên bản mới của AutoIt v3 đã ra đời. Và bây giờ nếu bạn có một nền tảng lập trình trên các ngơn ngữ khác, bạn có thể sử dụng AutoIt v3 này một cách dễ dàng.

2. Phiên bản v3 của AutoIt có gây khó khăn cho những người lập trình hơn so với các phiên bản trước không ?

Hầu hết trong mọi trường hợp, phiên bản v3 của AutoIt sử dụng dễ dàng hơn so với các phiên bản trước đó. Nó cũng tương đồng với ngơn ngữ BASIC và như bạn biết đấy BASIC là một ngôn ngữ khá đơn giản. Phần lớn các đoạn mã lệnh AutoIt phiên bản cũ chủ yếu tập trung thao tác nhấn “Next” trên các hộp thoại trong việc cài đặt phần mềm. Hầu hết các đoạn mã lệnh thực hiện thao tác đó có thể dễ dàng chuyển đổi sang v3 chỉ đơn giản bằng cách thêm một dấu ngoặc. Dưới đây là một ví dụ cho bạn thấy sự thay đổi như vậy trong phiên bản v2 và v3. Đoạn mã sau đây minh họa việc tự động cài đặt phần mềm thông qua các thao tác nhấn “Next” và kết thúc cài đặt thông qua nhấn nút “Finish” trên hộp thoại cài đặt.

; Đoạn mã lệnh trên phiên bản v2.64

Chun đề ngơn ngữ lập trình AutoIt Trang 148

Send, !n

WinWaitActive, Choose Destination, Please choose the Send, !n

WinWaitActive, Ready to install, Click Next to install Send, !n

WinWaitActive, Installation Complete, Click Finish to exit Send, !f

WinWaitClose, Installation Complete

; đoạn mã lệnh tương ứng trên phiên bản v3

WinWaitActive("Welcome", "Welcome to the XSoft installation") Send("!n")

WinWaitActive("Choose Destination", "Please choose the") Send("!n")

WinWaitActive("Ready to install", "Click Next to install") Send("!n")

WinWaitActive("Installation Complete", "Click Finish to exit") Send("!f")

WinWaitClose("Installation Complete")

Bạn có thể thấy rằng phiên bản v3 giúp cho người dùng thuận tiện trong khi sử dụng hàm chứ không phải lung tung như phiên bản v2.64. Tất cả các chuỗi đều được đóng trong dấu ngoặc kép và bây giờ các tham số trong hàm được đặt trong dấu ngoặc kép và được ngăn cách bởi dấu “,”. Hầu hết các trình soạn thảo ngơn ngữ đơn giản đều có hỗ trợ làm nổi bật cú pháp bằng tơ sáng (highlight) và vì thế bạn có thể soạn thảo mã đơn giản hơn rất nhiều.

3. Tơi có thể chuyển đổi đoạn mã lệnh AutoIt v2 sang phiên bản v3 bằng cách nào ?

Vấn đề đầu tiên bạn cần hãy suy nghĩ xem bạn có cần phải chuyển đổi đoạn mã của bạn khơng. V2.64 vẫn có thể tải về trên mạng và cịn được hỗ trợ và vì thế bạn khơng cần phải chuyển đổi các đoạn mã lệnh của bạn, ngoại trừ trường hợp bạn muốn như thế. Trong tài liệu AutoIt Help có một chương nói về mối liên hệ của dịng lệnh trong phiên bản AutoIt v2 và v3. Bạn có thể xem trong mục Using AutoIt -> Note for Auto It v2 Users trong tài liệu Help của AutoIt.

Các tác giả của AutoIt v3 có viết một tiện ích chuyển đổi đoạn mã phiên bản v2 sang v3. Tiện ích này làm việc khá tốt, bạn có thể tìm tiện ích này trong thư mục “Extras” trong thư mục cài đặt của AutoIt. Tuy nhiên theo tơi thì khơng có tiện ích chuyển đổi nào trong phiên bản AutoIt mà tôi đang sử dụng, rất có thể nó nằm trong phiên bản v3 cũ hơn. Bạn có thể lên Google Search xem coi có tiện ích chuyển đổi tương tự như vậy khơng. 4. Chỉ thị lệnh “goto” nằm ở đâu ?

Chỉ thị goto gây ra nhiều lỗi khó kiểm sốt trong khi lập trình. Việc sử dụng chỉ thị goto có thể làm mất cấu trúc của chương trình (như lời của With – tác giả của Pascal có nói). Đối với các chương trình nhỏ, bạn có thể dùng chỉ thị goto. Tuy nhiên đối với các chương trình lớn, việc dùng goto sẽ làm cho chương trình thêm phức tạp.

AutoIt có hỗ trợ cho người lập trình dùng một số vịng lặp phổ biến và vì thế chỉ thị goto khơng cịn cần thiết để sử dụng nữa. Bạn có thể sử dụng các chỉ thị mà AutoIt hỗ trợ như While, Do, For, ExitLoop, ContinueLoop. Khi bạn nắm được các vịng lặp này, bạn có thể hiểu được các cấu trúc lặp trong các ngôn ngữ khác chỉ trong vòng một vài phút.

Để minh họa cho việc dùng vịng lặp có thể thay thế chỉ thị goto, bạn có thể xem ví dụ sau :

Một phần của tài liệu Chuyên đề ngôn ngữ lập trình autoit (Trang 146 - 149)

Tải bản đầy đủ (PDF)

(154 trang)