Giới thiệu
File Ini (.ini) là một loại file dùng để lưu dữ liệu, đọc dữ liệu theo từng phần (section), từng từ khóa (key) và đọc giá trị của từ khóa đó (value). Nói đơn giản nó chỉ là một loại file dùng để lưu trữ dữ liệu tốt hơn txt thôi :v Bản thân mình cũng chẳng rõ về loại file này nữa nhưng mình rất ưa dùng nó (chỉ biết dùng thôi), bạn nào muốn tìm hiểu sâu hơn thì có thể tìm và đọc vài bài của mấy anh lớn như Juno_okyo (chắc kh có đâu), Phạm Vinh (opdo), ...
Hướng dẫn
Cấu trúc của một file .ini thế này
[Section]
Key=valueTa có:
- Section: Section Names, phần
- Key: Hiểu nôm na là từ khóa
- Value: Là giá trị của từ khóa đó
Mình cho ví dụ:
[Rio]
say=hello
Giải thích:
- Section ở đây là Rio
- Key là Say
- Value là Hello
- Có thể hiểu nôm na là thằng Rio đẹp trai nào đó nó "nói" xin chào.
Tiếp theo mình sẽ nói về việc tương tác với Ini trong AutoIT.
Để tương tác thì ta có vài hàm chính
IniWrite ( "filename", "section", "key", "value" )
IniWriteSection ( "filename", "section", "data" [, index = 1] )
IniRead ( "filename", "section", "key", "default" )
IniReadSection ( "filename", "section" )
IniReadSectionNames ( "filename" )
IniDelete ( "filename", "section" [, "key"] )
IniRenameSection ( "filename", "section", "new section" [, flag = 0] )Để tạo và đưa dữ liệu vào ini thì ta sử dụng hàm IniWrite và IniWriteSection như sau:
$User = InputBox("[GUI & Code] Part 10", "Vui lòng nhập tài khoảng", "", "", 200, 120)
$Pass = InputBox("[GUI & Code] Part 10", "Vui lòng nhập mật khẩu", "", "", 200, 120)
IniWrite(@ScriptDir & "\part10.ini", "User", $User, $Pass)
;~ File sẽ đọc ở đây là part10.ini, section sẽ có tên là "User". Còn Key ở đây sẽ là tài khoảng luôn, value sẽ là mật khẩu; là giá trị của key. Có nghĩa là cái tài khoảng key đó, có mật khẩu là value đó. Khi kiểm tra mà không đúng là méo cho vào.
Để đọc dữ liệu đã đưa vào ini, ta sử dụng 3 hàm IniRead mà trong đó mình thường dùng là IniReadSection.
$ruser = IniReadSection(@ScriptDir & "\part10.ini", "User")
MsgBox(64, "[GUI & Code] Part 10", "Tài khoảng: " & $ruser[1][0] & @CRLF & "Mật khẩu: " & $ruser[1][1])
;~ Sử dụng hàm IniReadSection thành công thì bạn có thể sự dụng 2 biến:
;~ $ruser[1][0]: Để đọc các key (đọc các tài khoảng, dùng để kiểm tra tài khoảng có tồn tại hay không)
;~ $ruser[1][1]: Để đọc các value của key (đọc các mật khẩu, nếu tài khoảng tồn tại thì sẽ tiếp tục đến bước kiểm tra mật khẩu, đúng thì cho vào, không thì báo lỗi)
Tuy nhiên, nếu bạn muốn xóa một section nào đó thì có thể sử dụng IniDelete
$delete = InputBox("[GUI & Code] Part 10", "Vui lòng nhập tên tài khoảng muốn xóa", "", "", 200, 120)
IniDelete(@ScriptDir & "\part10.ini", "User", $delete)
Để đổi tên một section, bạn có thể dùng IniRenameSection
;~ Phần này hơi phức tạp với ví dụ hiện tại, vì thế nếu bạn nào có ý định viết phần mềm quản lí người dùng mà có chức năng chỉnh sửa tên người dùng thì nên tạo một file dành riêng cho việc lưu trữ tài khoảng thôi. Từ đó mỗi tài khoảng sẽ có một section riêng mà không dùng chung như ví dụ trên nữa.
Ngoài ra, bạn cũng có thể làm theo cách xóa key trong một section bất kì đi rồi sau đó viết lại một cái key mới. Tuy nhiên trước khi xóa key thì phải đọc value (là password), nếu muốn an toàn thì lưu ở đâu đó luôn. Vì khi xóa key thì đồng nghĩa value của key đó cũng sẽ bị xóa luôn. Đó là lý do vì sao các bạn nên đặt cho từng user vào từng section riêng. Đặt tài khoảng là một key, mật khẩu là một key riêng.
Từ đây và những kiến thức có sẵn, bạn có thể tạo ứng dụng quản lí thông tin người dùng.
Xin chào, chúc bạn thành công.
Mã nguồn
http://menly.ml/view/ab6f55e6
EmoticonEmoticon