从AHK中的文本文件中分离和比较字符串

时间:2015-12-07 01:21:56

标签: string loops user-interface autohotkey

我遇到了一些问题,但我觉得很接近解决它。我有一个文本文件,用管道分隔用户名和密码:

;info.txt
user1|pass1
user2|pass2
user3|pass3
user4|pass4
user5|pass5
user6|pass6
user7|pass7
user8|pass8
user9|pass9
user10|pass10

以及代码:

Gui, -SysMenu
Gui, Add, Button, , Log in
getUsers()
Gui, Add, Button, , Exit
Gui, Show
Return


getUsers()
{
    userList := ""
    loop
    {

        FileReadLine, line, info.txt, %A_Index%
        if ErrorLevel
            Break
        getUsers := StrSplit(line, "|")
        userList .= getUsers[1] "|"

    }

    Gui, Add, ListBox, h100 vChoice, %userList%
}

ButtonLogin:
MsgBox, You chose %Choice%.
Gui, Submit, NoHide
Return

ButtonExit:
ExitApp
Return 

我使用StrSplit()将User与Pass分开,然后分隔用户以使其成为ListBox的正确格式。一切都加载得很好,但当我从列表中选择一个并点击"登录时,"第一个没有给我任何结果,那么正确的结果会延迟一个。例如:

Click user1 > You chose .
Click user5 > you chose user1.
Click user3 > you chose user5.

此外,如果有人有更好的方法,请告诉我。

1 个答案:

答案 0 :(得分:0)

啊,我想通了。这是一个问题:

ButtonLogin:
MsgBox, You chose %Choice%.
Gui, Submit, NoHide
Return

MsgBox正在发生 BEFORE 提交正在进行中。修正:

ButtonLogin:
Gui, Submit, NoHide
MsgBox, You chose %Choice%.
Return