1. Tải bản cài đặt AutoIT mới nhất

    Chào Khách. Nếu bạn mới tham gia và chưa cài đặt AutoIT.
    Vui lòng vào topic trên để tải bản AutoIT mới nhất nhé
    Dismiss Notice
  2. Quy định và nội quy

    Chào Khách. Vui lòng đọc kỹ nội quy và quy định của diễn đàn
    Để tránh bị ban một cách đáng tiếc nhé!
    Dismiss Notice
  3. Hướng dẫn chèn mã AutoIT trong diễn đàn

    Chào Khách. Vui lòng xem qua bài viết này
    Để biết cách chèn mã AutoIT trong diễn đàn bạn nhé :)
    Dismiss Notice

Hỏi đáp [Solved] Đọc data từ ini tương ứng với nút Radio đã chọn

Thảo luận trong 'Thảo luận chung - Hỏi đáp' bắt đầu bởi banbeit, 13/7/16.

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. banbeit

    banbeit Thành viên mới
    • 3/6

    Tham gia ngày:
    21/9/15
    Bài viết:
    5
    Đã được thích:
    6
    Xin chào mọi người,
    Mình mới tìm hiểu về ngôn ngữ này, và đang tìm cách viết ứng dụng đọc dữ liệu từ file.ini

    Mình có file.ini như sau:

    [ISP]
    isp1=vnpt
    isp2=viettel
    [NAME]
    name1=abc
    name2=xyz
    name3=xxx
    .
    .
    .
    [IP]
    ip_name1_isp1=1.1.1.1
    ip_name1_isp2=1.1.1.2
    ip_name2_isp1=2.2.2.1
    ip_name2_isp2=2.2.2.2
    ip_name3_isp1=3.3.3.1
    ip_name3_isp2=3.3.3.2
    .
    .
    .
    .


    -----------------------------------------------------------------------------------------
    Yêu cầu đặt ra:
    1/Giao diện (đã xong): yêu cầu người dùng chọn:
    • name ---> Chọn name từ listbox hoặc Radio.
    • isp ----> Radio

    2/Code: kiểm tra kết nối (ping) tới ip_isp tương ứng với name & isp đã chọn ở trên
    • Lỗi -->thông báo
    • OK --> qua bước 3
    3/Code: kết nối (telnet) đến ip_isp tương ứng đã chọn ở trên.

    --------------------------

    Ping check, cũng như việc kết nối (telnet) qua TCP, đọc data từ file.ini thì mình đã biết làm, nhưng chưa biết làm cách nào lấy đúng giá trị "ip_isp" tương ứng với sự lựa chọn ở trên để Ping và Telnet

    Vì mới tìm hiểu nên mình không rành các điều kiện, cách gọi hàm cần thiết. Mong các cao thủ hướng dẫn giúp ^^~
     
    Chỉnh sửa cuối: 13/7/16
    kamsamita1 thích bài này.
  2. banbeit

    banbeit Thành viên mới
    • 3/6

    Tham gia ngày:
    21/9/15
    Bài viết:
    5
    Đã được thích:
    6
    Đây là giao diện demo:

    [​IMG]




    Bước 1: chọn store
    Bước 2: chọn isp
    Bước 3: PING kiểm tra kêt nối đến ip_isp tương ứng đã chọn ở trên.
    Bước 4: Chọn hành động tương ứng
    tiến hành TCP connect đến ip_isp tương ứng đã chọn ở trên.


    Mong anh em hướng dẫn cách lấy "ip_isp" (đọc từ file.ini) tương ứng với việc lựa chọn ở bước 1 và 2. đưa vào PING, đưa vào TCP connect. :)
     
    kamsamita1 thích bài này.
  3. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    - GUIGetMsg() sẽ trả về ID của nút (Radio) mình click nên => $Msg - (ID $Radio đầu tiên trong nhóm NAME hoặc ISP) chính là vị trí của nút mình đã click

    - IniReadSection trả về mảng IP, ví dụ cái Data trong bài hỏi, trả về mảng 6 phần tử
    [1][1] => 1.1.1.1
    [2][1] => 1.1.1.2
    [3][1] => 2.2.2.1
    ...
    Ta sẽ có công thức như code: :v

    https://drive.google.com/open?id=0B0fuwDPNpByLNjg0aHAzdmFhdWc
     
    kamsamita1 and banbeit like this.
  4. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    Hoặc code như này có vẻ đơn giản hơn =.=
    Mã (AutoIt):
    #include <array.au3>
    $DataPath = @ScriptDir & '\Data.ini'
    $arrayIP = IniReadSection($DataPath, 'IP')

    $Form = GUICreate("Form", 348, 305)

    #Region<NAME>
        $Group1 = GUICtrlCreateGroup("NAME", 8, 8, 329, 89)
        $Radio1 = GUICtrlCreateRadio("HCM", 24, 40, 81, 25)
        $Radio2 = GUICtrlCreateRadio("HaNoi", 120, 40, 97, 33)
        $Radio3 = GUICtrlCreateRadio("CanTho", 232, 32, 89, 49)
        GUICtrlCreateGroup("", -99, -99, 1, 1)
    #EndRegion

    #Region<ISP>
        $Group2 = GUICtrlCreateGroup("ISP", 5, 124, 329, 89)
        $Radio_VNPT = GUICtrlCreateRadio("VNPT", 69, 156, 81, 25)
        $Radio_Viettel = GUICtrlCreateRadio("Viettel", 197, 156, 97, 33)
        GUICtrlCreateGroup("", -99, -99, 1, 1)
    #EndRegion

    $Button = GUICtrlCreateButton("Test", 8, 232, 329, 49)
    GUISetState(@SW_SHOW)
    GUICtrlSetState($Radio1, 1)
    GUICtrlSetState($Radio_VNPT, 1)

    $Vitri_Name = 0
    $Vitri_ISP = 0

    While 1
        $Msg = GUIGetMsg()
        Switch $Msg
            Case -3
                Exit

            Case $Radio1 To $Radio3
                $Vitri_Name = $Msg - $Radio1
                ConsoleWrite(@CRLF & 'So thu tu Name da click = ' & $Vitri_Name)

            Case $Radio_VNPT To $Radio_Viettel
                $Vitri_ISP = $Msg - $Radio_VNPT
                ConsoleWrite(@CRLF & 'So thu tu ISP da click = ' & $Vitri_ISP)

            Case $Button
                $Vitri_IP = $Vitri_Name * 2 + $Vitri_ISP + 1
                MsgBox(4096, $arrayIP[$Vitri_IP][1], 'Vị trí IP trong mảng = ' & $Vitri_IP)
        EndSwitch
    WEnd
     
     
    kamsamita1 and banbeit like this.
  5. banbeit

    banbeit Thành viên mới
    • 3/6

    Tham gia ngày:
    21/9/15
    Bài viết:
    5
    Đã được thích:
    6
    kamsamita1 thích bài này.
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này

Đang tải...