KIỂU DỮ LIỆU
Trong AutoIt chỉ có một loại dữ liệu gọi là Variant (tạm dịch là biến).Một biến có thể chứa dữ liệu theo kiểu chuỗi (string) hoặc là kiểu số (number) tùy vào tình huống sử dụng. Ví dụ như nếu bạn nhân hai biến với nhau thì lúc này biến có kiểu number, còn nếu bạn sử dụng phép toán ghép chuỗi với hai biến thì chúng sẽ được đối xử như các chuỗi ký tự.
Ví dụ :
10 * 20 sẽ bằng số 200 (* là nhân hai biến với nhau)
10* “20” cũng sẽ bằng số 200
hoặc “10” * “20” cũng bằng số 200
10 & 20 sẽ trả về một chuỗi là “1020” (& là phép toán ghép chuỗi)
Nếu một chuỗi được sử dụng như một số, một phép gọi hàm Number()nên được thực hiện. Và nếu như ký tự đầu tiên của chuỗi không phải là một ký số thì sẽ trả về một số 0. Ví dụ :
10 * “abc” sẽ trả về số 0
10* number(“abc”) cũng trả về 0
10* number(“25ghj”) sẽ trả về 250
Nếu một chuỗi được sử dụng trong kiểu boolean (True/False) và nó là một chuỗi rỗng “” thì sẽ được xem như bằng 0 (False).
KIỂU SỐ – NUMBER
Number có thể là số thập phân như : 3, 5.642 và -8
cũng có thể là số thập phân theo dạng khoa học, ví dụ như 1.5e3 sẽ thay cho 1500 (vì 1.5*10^3)
hay hệ thập lục phân (hexa) : 0x409 hoặc 0xff4a.
Chú ý :
· Hệ hexa trong AutoIt phải bắt đầu với 0x và theo sau là các ký số từ 0 đến 9 hoặc/và các ký tự a, b, c, d, e, f.
· Khi tính toán các biểu thức số, bạn không cần quan tâm đến việc giới hạn của kiểu dữ liệu. Nếu kết quả là số nguyên, AutoIt sẽ trả về cho bạn số nguyên. Nếu kết quả là số thập phân, AutoIt sẽ trả về giá trị thập phân. Ở dạng thập phân, giá trị lớn nhất có thể chứa là (264 – 1)/2.
· Một số hàm trong AutoIt chỉ làm việc với số nguyên 32 bit (mang giá trị từ 0 đến 232 -1) và các số này sẽ được chuyển đổi tự động, tùy vào hàm sử dụng. Ví dụ như BitAnd.
KIỂU CHUỖI – STRING
Chuỗi ký tự được rào trong cặp dấu ngoặc kép ” “ hoặc cặp dấu nháy đơn ‘ ‘. Ví dụ :
“this is a string”
‘ Welcome to AutoIt ! ‘
Mặc dù AutoIt hỗ trợ hai phương thức biểu diễn chuỗi nhưng khi sử dụng bạn phải sử dụng thống nhất có trật tự, không thể bắt đầu rào chuỗi với dấu ngoặc kép, kết thúc chuỗi với dấu nháy đơn và ngược lại. Ví dụ sau cho thấy chuỗi không hợp lệ :
” doctor for pc ‘(sẽ báo lỗi khi chạy)
Tuy nhiên, trong trường hợp bạn muốn nhấn mạnh một nội dung nào đó trong chuỗi bằng dấu ngoặc kép hoặc dấu nháy đơn thì AutoIt cũng hỗ trợ việc trộn hai dạng ký tự này. Và bạn phải nhớ tính trật tự và đầy đủ trong khi sử dụng. Ví dụ :
‘ It is a “black” web ‘
“This “sentence” contains “lots” of “double-quotes”. “
” It ‘s a dog “
nhưng ‘ it ‘s a dog ‘ (là một chuỗi bị lỗi)
Một biến kiểu chuỗi có thể chứa đến 2,147,483,647 ký tự (tương đương với 1651 quyển sách dày 500 trang, mỗi trang có 40 dòng, mỗi dòng có 65 ký tự)
KIỂU BOOLEAN
Kiểu boolean chỉ mang hai giá trị đúng hoặc sai (True/False). Trong nhiều trường hợp sử dụng thì một kiểu boolean trả về False khi giá trị của biến đó là 0 hoặc là chuỗi rỗng “”. Tất cả các trường hợp khác 0 đều được xem như True, theo mặc định thì True bằng 1. Thông thường, các phép toán logic AND, OR hoặc NOT thường được dùng với kiểu boolean trong việc thẩm định điều kiện.
Ví dụ :
$b1 = true
$b2 = false
$b3 = $b1 And $b2–> ($b3 sẽ bằng False)
$b2 = 5
$b3 = $b1 And $b2–> ($b3 sẽ bằng True)
$b3 = $b1 + $b2 –> ($b3 sẽ bằng 6)
$b3 = NOT $b3 –> ($b3 sẽ bằng 0)
Trong trường hợp bạn xử lý một biến boolean như một chuỗi thì :
một boolean là true sẽ chứa chuỗi “True”
một boolean là false sẽ chứa chuỗi “False”
ví dụ :
$b1 = true
$str = “test is : “
$string = $str & $b1 ($string sẽ chứa chuỗi “Test is : True”)
KIỂU NHỊ PHÂN – BINARY
Kiểu binary có thể lưu giữ mọi byte giá trị, chúng được chuyển đổi sang dạng hexa khi lưu trong một biến chuỗi. Ví dụ :
$bin = Binary(“abc”)
$str = string($bin) –> “0x616263”
KIỂU CON TRỎ – POINTER
Kiểu con trỏ dùng để lưu trữ địa chỉ bộ nhớ 32 bit hoặc 64 bit tùy vào phiên bản AutoIt được sử dụng. Thực chất con trỏ là một số nguyên chỉ định vị trí của thành phần dữ liệu nào đó trong bộ nhớ. Tuy nhiên, khi truy xuất trong AutoIt thì con trỏ sẽ được lưu ở dạng hexa trong một biến kiểu chuỗi. Handle (tạm dịch là kênh hay địa chỉ trong bộ nhớ) của cửa sổ được trả về bởi hàm WinGetHandle là một kiểu con trỏ, mang giá trị ở dạng hexa. Nếu muốn xem ở dạng thập phân bình thường ta dùng hàm Number .
——————————–
Mặc dù phần này trình bày nhiều kiểu dữ liệu mà AutoIt hỗ trợ nhưng trên thực tế, bạn chỉ cần quan tâm đến hai kiểu chính đó là number và string. Đây chính là hai kiểu dữ liệu thường dùng nhất khi viết script. Các kiểu khác dùng để tham khảo cho biết chứ thực chất chúng cũng được tạo nên từ hai kiểu trên và thường chúng ít khi được dùng đến. Nếu bạn đã là một người sành sỏi về lập trình thì việc này không cần phải bàn.