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] Xin code tạo GUI và update thông tin từ GUI vào file txt

Thảo luận trong 'Thảo luận chung - Hỏi đáp' bắt đầu bởi Quách Tỉnh, 13/3/16.

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

    Quách Tỉnh Thành viên mới
    • 1/6

    Tham gia ngày:
    13/3/16
    Bài viết:
    4
    Đã được thích:
    0
    Tình hình là em có file txt như thế này , tên file là " net". em dùng để chơi game offline qua lan ảo ấy mà.
    NAME=
    PORT=
    COMMENT=
    192.168.1.106:10994
    171.223.21.131:10994
    Em muốn nó thành file exe có chỗ điền tên NAME, PORT, COMMENT, và chỗ điền địa chỉ ip dạng như trên, và save lại đc.
    Vì mỗi lần chơi lại thay đổi ip nên em muốn có chức năng clean ip cho đỡ nhiều. bác nào làm đc k ạ. em mù tịt về code nên mạo muội vào đây làm phiền , hi vọng đc các bác giúp. Cám ơn
     
  2. 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
    Mã (AutoIt):
    #include <GUIConstantsEx.au3>
    #include <GuiIPAddress.au3>
    #include <WindowsConstants.au3>

    $FileOption = @ScriptDir & '\NET.ini'
    If Not FileExists($FileOption) Then FileOpen($FileOption, 2 + 128)
    $optNAME = IniRead($FileOption, '1', 'NAME', '')
    $optPORT = IniRead($FileOption, '1', 'PORT', '')
    $optCOMMENT = IniRead($FileOption, '1', 'COMMENT', '')
    $optIP1 = IniRead($FileOption, '2', 'IP1', '0.0.0.0')
    $optIP2 = IniRead($FileOption, '2', 'IP2', '0.0.0.0')

    $Form = GUICreate("GUI", 316, 235, 192, 114)
    GUICtrlCreateLabel("NAME", 8, 18, 36, 17)
    $InputNAME = GUICtrlCreateInput($optNAME, 80, 16, 225, 21)
    GUICtrlCreateLabel("PORT", 8, 51, 36, 17)
    $InputPORT = GUICtrlCreateInput($optPORT, 80, 48, 225, 21)
    GUICtrlCreateLabel("COMMENT", 8, 84, 55, 17)
    $InputCOMMENT = GUICtrlCreateInput($optCOMMENT, 80, 80, 225, 21)
    $IPAddress1 = _GUICtrlIpAddress_Create($Form, 80, 112, 169, 21)
    _GUICtrlIpAddress_Set($IPAddress1, $optIP1)
    $IPAddress2 = _GUICtrlIpAddress_Create($Form, 80, 144, 169, 21)
    _GUICtrlIpAddress_Set($IPAddress2, $optIP2)
    $Input1 = GUICtrlCreateInput("", 256, 112, 49, 21)
    $Input2 = GUICtrlCreateInput("", 256, 144, 49, 21)
    $ButtonCLEAN = GUICtrlCreateButton("Xoá IP", 8, 112, 65, 54)
    $ButtonOK = GUICtrlCreateButton("Đồng ý", 8, 184, 297, 41)
    GUISetState(@SW_SHOW)

    While 1
        Switch GUIGetMsg()
            Case -3
                Exit
            Case $ButtonOK
                $optNAME = GUICtrlRead($InputNAME)
                IniWrite($FileOption, '1', 'NAME', $optNAME)
                $optPORT = GUICtrlRead($InputPORT)
                IniWrite($FileOption, '1', 'PORT', $optPORT)
                $optCOMMENT = GUICtrlRead($InputCOMMENT)
                IniWrite($FileOption, '1', 'COMMENT', $optCOMMENT)
                $IP1 = _GUICtrlIpAddress_Get($IPAddress1)
                IniWrite($FileOption, '2', 'IP1', $IP1)
                $IP2 = _GUICtrlIpAddress_Get($IPAddress2)
                IniWrite($FileOption, '2', 'IP2', $IP2)
            Case $ButtonCLEAN
                _GUICtrlIpAddress_Set($IPAddress1, '...')
                _GUICtrlIpAddress_Set($IPAddress2, '...')
        EndSwitch
    WEnd
     
    Quách Tỉnh thích bài này.
  3. Quách Tỉnh

    Quách Tỉnh Thành viên mới
    • 1/6

    Tham gia ngày:
    13/3/16
    Bài viết:
    4
    Đã được thích:
    0
    Không được rồi mod ơi, nó ra file ini, phải là file txt. nhưng mà dạng code của bác nó ra thế này:
    [1]
    NAME=tung
    PORT=10996
    COMMENT=choigamethoi
    [2]
    IP1=120.130.130.130
    IP2=0.0.0.0
    em muốn nó ra thế này thôi
    NAME=tung
    PORT=10996
    COMMENT=choigamethoi
    120.130.130.130:10996
    có nghĩa là k có số [1] và [2] kia, k có chữ "IP1=" và chỉ cần 1 dòng IP là đủ, và thêm " : PORT " ở cuối IP đó.
     
    Chỉnh sửa cuối: 13/3/16
  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
    À, tại thấy thým để 2 hàng IP nên tưởng có 2 cái kaka.
     
  5. Quách Tỉnh

    Quách Tỉnh Thành viên mới
    • 1/6

    Tham gia ngày:
    13/3/16
    Bài viết:
    4
    Đã được thích:
    0
    Cái dòng ip cuối cùng mod cứ để 1 ô trống cho em tự điền cũng đc, k cần phải dạng ip đâu, vì copy cho dễ, em copy từ hamachi sang mà
     
  6. 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
    Mã (AutoIt):
    #include <GUIConstantsEx.au3>
    #include <GuiIPAddress.au3>
    #include <WindowsConstants.au3>

    $FileOption = @ScriptDir & '\NET.txt'
    If Not FileExists($FileOption) Then $hOpen = FileOpen($FileOption, 2 + 128)

    $sOption = _TXT_Startup($FileOption)

    $optNAME = _TXT_Read($sOption, 'NAME')
    $optPORT = _TXT_Read($sOption, 'PORT')
    $optCOMMENT = _TXT_Read($sOption, 'COMMENT')
    $optIP = _TXT_Read($sOption, 'IP')
    $optIP = StringSplit($optIP, ':', 2)
    If UBound($optIP) = 1 Then Local $optIP[2]

    $Form = GUICreate("GUI", 316, 200, 192, 114)
    GUICtrlCreateLabel("NAME", 8, 18, 36, 17)
    $InputNAME = GUICtrlCreateInput($optNAME, 80, 16, 225, 21)
    GUICtrlCreateLabel("PORT", 8, 51, 36, 17)
    $InputPORT = GUICtrlCreateInput($optPORT, 80, 48, 225, 21)
    GUICtrlCreateLabel("COMMENT", 8, 84, 55, 17)
    $InputCOMMENT = GUICtrlCreateInput($optCOMMENT, 80, 80, 225, 21)
    $IPAddress = GUICtrlCreateInput($optIP[0], 80, 112, 169, 21)
    GUICtrlCreateLabel(":", 251, 113, 5, 17)
    GUICtrlSetFont(-1, 11, 600)
    $InputPORT2 = GUICtrlCreateInput($optIP[1], 256, 112, 49, 21)
    $ButtonCLEAN = GUICtrlCreateButton("Xoá IP", 8, 112, 65, 21)
    $ButtonOK = GUICtrlCreateButton("Đồng ý", 8, 144, 297, 41)
    GUISetState(@SW_SHOW)

    While 1
        Switch GUIGetMsg()
            Case -3
                Exit
            Case $ButtonOK
                $optNAME = GUICtrlRead($InputNAME)
                _TXT_Write($sOption, 'NAME', $optNAME)
                ;-----------------------------------------------
                $optPORT = GUICtrlRead($InputPORT)
                _TXT_Write($sOption, 'PORT', $optPORT)
                ;-----------------------------------------------
                $optCOMMENT = GUICtrlRead($InputCOMMENT)
                _TXT_Write($sOption, 'COMMENT', $optCOMMENT)
                ;-----------------------------------------------
                $IP = GUICtrlRead($IPAddress)
                $PORT2 = GUICtrlRead($InputPORT2)
                _TXT_Write($sOption, 'IP', $IP & ':' & $PORT2)
                ;-----------------------------------------------
                _TXT_SaveFile($FileOption, $sOption)

            Case $ButtonCLEAN
                GUICtrlSetData($IPAddress, '')
                GUICtrlSetData($InputPORT2, '')
                _TXT_Write($sOption, 'IP', '')
                _TXT_SaveFile($FileOption, $sOption)
        EndSwitch
    WEnd

    Func _TXT_Startup($sPath)
        $hOpen = FileOpen($sPath, 128)
        $hRead = FileRead($hOpen)
        FileClose($hOpen)
        Return $hRead
    EndFunc

    Func _TXT_SaveFile($sPath, $sData)
        $hOpen = FileOpen($sPath, 2 + 128)
        FileWrite($hOpen, $sData)
        FileClose($hOpen)
    EndFunc

    Func _TXT_KeyExist($sData, $_vKey)
        Return StringRegExp($sData, '(?m)^\Q' & $_vKey & ' = \E') <> 0
    EndFunc

    Func _TXT_Read($sData, $_vKey, $sValueReturn = '')
        Local $iRead = StringRegExp($sData, '(?m)^\Q' & $_vKey & ' = \E(.*?)$', 1)
        If @error Then Return SetError(1, 0, $sValueReturn)
        Return $iRead[0]
    EndFunc

    Func _TXT_Write(ByRef $sData, $_vKey, $_sValue, $_addStartData = 0)
        $sData = StringRegExpReplace($sData, '(?m)(^\Q' & $_vKey & ' = \E)(.*)$', '${1}' & StringReplace($_sValue, '\', '\\', 0, 1), 1)
        If Not @extended Then
            If $_addStartData = 1 Then
                $sData = $_vKey & ' = ' & $_sValue & @CRLF & $sData
            Else
                $sData &= @CRLF & $_vKey & ' = ' & $_sValue
            EndIf
        EndIf
    EndFunc
     
  7. Quách Tỉnh

    Quách Tỉnh Thành viên mới
    • 1/6

    Tham gia ngày:
    13/3/16
    Bài viết:
    4
    Đã được thích:
    0
    Đc rồi, thanks mod nhé.
     
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này

Đang tải...