我正好在开发一个项目,其中也有这样的功能,说说我的逻辑吧。
INI文件定义如下:
#登录窗口默认值
[LoginDefault]
user =方建康|lixiaowei|xujuan
INI文件的获得及存储默认用户代码如下:;读取ini获得默认用户
Func GetINI_Default_User()
$skin = IniRead(@ScriptDir & "\config.ini", "LoginDefault", "user", "")
If $skin == "" Then
$skin = ""
EndIf
Return $skin
EndFunc ;==>GetINI_Default_User
;设置ini记录用户名称
Func SetINI_Default_User($name)
$history_user = IniRead(@ScriptDir & "\config.ini", "LoginDefault", "user", "")
If $history_user == "" Then
IniWrite(@ScriptDir & "\config.ini", "LoginDefault", "user", $name)
Else
;判断将要写入的用户名是否已经在历史用户中,如果不存在,则将用户直接写入,如果存在,则将该用户提前
$result = StringInStr($history_user, $name)
If $result == 0 Then
IniWrite(@ScriptDir & "\config.ini", "LoginDefault", "user", $name & "|" & $history_user)
Else
If StringInStr($history_user, $name & "|") <> 0 Then
$new_User = StringReplace($history_user, $name & "|", "")
IniWrite(@ScriptDir & "\config.ini", "LoginDefault", "user", $name & "|" & $new_User)
Else
$new_User = StringReplace($history_user, "|" & $name, "")
IniWrite(@ScriptDir & "\config.ini", "LoginDefault", "user", $name & "|" & $new_User)
EndIf
EndIf
EndIf
EndFunc ;==>SetINI_Default_User
主要思想是,通过“|”符合来分割不同的用户,再将本次登录的用户,切换到最前面去,即可。
效果如下:
|