用VB实现用户登录密码的修改
用VB
用户口令的登录及修改
本文就举一例谈谈如何在VB6.0中实现用户口令的登录及修改
设计。
在VB6.0中,根据文件中数据的存取方式和结构不同分为二类:
顺序文件、随机文件。顺序文件的主要用途是存取文本文件,按照先
后顺序进行存取数据,使用简单、容易。要实现口令的修改设置,可
先把口令保存在一顺序文件pass
.txt中,然后对其进行打开、
读/写、关闭等操作。用户登录时,先用Open语句打开password.txt文件,再用Line Input #语句从该文件中读取口令,与输入口令
比较相同时才可登录。设置新口令时,要求用户输入一次旧口令、两
次新口令,在进行确认后,用Open语句打开password.txt文件,用Print #语句将新口令写入文件,将用户新设置的口令存入指定的
password.txt文件中。
现将与文件操作有关的语句解释如下:
1.Open 文件全名 For 方式 As #文件号
打开顺序文件,方式为Input时,
示将数据从顺序文件输入到
内存中;方式为Output时,表示将数据从内存写入到顺序文件。
2.Line Input #文件号,变量名
从顺序文件中读入一行到内存变量。
3.Print #文件号,变量名
将内存变量的值写入到顺序文件。
4.Close #文件号
指定关闭已打开的顺序文件。
1.新建一个工程,将窗体Form1命名为frmyhdl,标题为“用
户登录”。该窗体是整个程序运行后首先出现在用户面前的,用于用
户登录,而且必须通过合法性的检查。在窗体中添加文本框Text1用于用户输入口令,将文本框的PasswordChar属性设为*,Text属性设为空,两个命令按钮(Command1、Command2)的标题分别为:“确认”、
“取消”,创建好的窗体如下图所示:
用记事本软件建立一文本文件password.txt,将口令存于该文
件中(口令在首行首列开始写,如“1234”代表口令是1234),将该文件保存在新建工程所在的目录。
用户登录程序代码如下:
Private Sub Command1_Click()
FileName = App.Path + "\password.txt"
'口令字放在当前文件夹的"password.txt"中
Open FileName For Input As #1 '打开"password.txt"文件
Line Input #1, passwordstr
'读入"password.txt"文件首行到passwordstr变量
Close #1
If Text1.Text = passwordstr Then '输入正确
frmmenu.Show 'frmmenu为笔者设计的系统主窗体
Unload Me
Else '输入错误
MsgBox "用户口令输入错误! 请重输!", 17, "警告"
End If
End Sub
Private Sub Command2_Click()
Unload Me ’按取消按钮,卸载登录窗体
end
End Sub
Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height
- Me.Height) / 2 ’窗体在屏幕居中显示
Show
Text1.SetFocus ’光标停在Text1框内
End Sub
2.在工程1中,添加笔者设计的系统主窗体frmmenu,有一修改口令菜单,标题为“修改口令”,名称为xgkl
Private Sub xgkl_Click()
frmxgkl.show ’单击xgkl菜单项显示修改口令窗体
End Sub
3.在工程1中,添加窗体Form2,命名为frmxgkl,标题为“修改口令”,当用户需要更改口令时,可以在程序中调用此窗体。这个
窗体需要正确接收用户输入的一次旧口令、两次新口令,并且将三次
输入的口令进行比较,当符合要求时将新口令存入password.txt文件中。在窗体中添加文本框text1用于用户输入旧口令,添加文本框
text2用于用户输入的新口令,添加文本框text3用于用户对输入的新口令进行重输,三个文本框的PasswordChar属性设为*,Text属性设为空。两个命令按钮(Command1、Command2)的标题分别为:“确认”、“返回”,创建好的窗体如下图所示:
修改口令程序代码如下: Private Sub Command1_Click()
If Text1.Text = passwordstr And Text3.Text = Text2.Text Then
passwordstr = Text2.Text
FileName = App.Path + "\password.txt"
Open FileName For Output As #2
Print #2, passwordstr
Close #2
MsgBox "口令修改成功,请记住!", 48, "提示"
Else
If Text2.Text <> Text3.Text Then
MsgBox "两次新口令输入不一致,请重新输入!", 16, "警告"
Else
MsgBox "旧口令错,请重新输入!", 16, "警告"
End If
End If
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height -
Me.Height) / 2
Show
Text1.SetFocus
End Sub
最后,别忘了在
模块中加上一句全局变量定义语句:Public passwordstr As String。作为引申,还可以将password.txt文件中的口令字写入时加密、读出时解密,或将其放在其它目录下,以防
他人从中获得口令。