我們?cè)谠O(shè)計(jì)應(yīng)用軟件時(shí),總希望在進(jìn)入軟件主窗體之前,顯示用戶登錄窗體,要求用戶輸入密碼,當(dāng)用戶的密碼得到驗(yàn)證后,即可進(jìn)入軟件應(yīng)用環(huán)境。用戶登錄密碼的修改是指進(jìn)入主窗體后,能夠?qū)Φ卿浢艽a進(jìn)行修改,設(shè)置的新密碼將成為下一次登錄時(shí)用的密碼,本文就談?wù)勅绾卧赩B5.0中實(shí)現(xiàn)用戶登錄密碼的修改。
一、實(shí)現(xiàn)原理
在VB5.0中,文件共有三類:順序文件;隨機(jī)文件;二進(jìn)制文件。順序文件的主要用途是存取文本文件,按照先后順序進(jìn)行存取數(shù)據(jù),使用簡(jiǎn)單容易。要實(shí)現(xiàn)密碼的修改設(shè)置,可把密碼保存在一順序文件config.txt中,然后對(duì)其進(jìn)行打開(kāi)、關(guān)閉、讀寫等操作。用戶登錄時(shí),先用Open語(yǔ)句打開(kāi)config.txt文件,用Input#語(yǔ)句從該文件中讀取密碼。設(shè)置新密碼時(shí),要求用戶輸入兩次密碼,進(jìn)行確認(rèn),在確認(rèn)這兩次輸入的密碼一致后,用Open語(yǔ)句建立文件config.txt,用PRint#語(yǔ)句將密碼寫入文件,就將用戶新設(shè)置的密碼存入指定的config.txt文件中。
現(xiàn)將與文件操作的語(yǔ)句解釋如下:
1.Open語(yǔ)句
打開(kāi)順序文件,模式為Input時(shí),表示將數(shù)據(jù)從磁盤上輸入內(nèi)存中;模式為Output時(shí),表示將數(shù)據(jù)從內(nèi)存寫入磁盤。
2.Close語(yǔ)句
關(guān)閉所有已打開(kāi)的數(shù)據(jù)文件。
3.Input#語(yǔ)句
用于從順序文件中讀取數(shù)據(jù)。
4.Print#語(yǔ)句
把內(nèi)存中的數(shù)寫入順序文件。
二、程序的實(shí)現(xiàn)
1.新建一個(gè)工程,將窗體Form1命名為yhdl,該窗體是整個(gè)程序運(yùn)行后首先出現(xiàn)在用戶面前的,用于用戶登錄,而且必須通過(guò)合法性的檢查。將窗體的ControlBox屬性設(shè)為False,標(biāo)題為“用戶登錄”。在窗體中添加文本框(Text1)用于用戶輸入密碼,兩個(gè)命令按鈕(Command1、Command2)的標(biāo)題分別為:“確認(rèn)”、“取消”,創(chuàng)建好的窗體如下圖所示。用字處理軟件建立一文本文件config.txt,將密碼存于該文件中,將該文件保存在新建工程所在的目錄。將文本框的PassWordChar屬性設(shè)為*,程序代碼如下:
DimiAsInteger’用戶登錄程序
DimpasswordstrAsString
PrivateSubCommand1_Click()
Open"config.txt"ForInputAs#1
DoWhileNotEOF(1)
Input#1,passwordstr
Loop
Close#1
i=i 1
Ifi<=3Then
IfText1.Text=passwordstrThen
’輸入正確
UnloadMe
ksxt.Show
’ksxt為筆者設(shè)計(jì)的考試系統(tǒng)窗體
Else’輸入錯(cuò)誤
x=MsgBox("用戶密碼輸入錯(cuò)誤!請(qǐng)?jiān)佥斠淮?",17,"警告")
Text1.SetFocus
EndIf
Else
UnloadMe’輸入次數(shù)超過(guò)三次,卸載窗體
EndIf
EndSub
PrivateSubCommand2_Click()
UnloadMe’按取消按鈕,卸載登錄窗體
EndSub
PrivateSubForm_Load()
Me.Move(Screen.Width-Me.Width)
/2,(Screen.Height-Me.Height)/2
Show
Text1.SetFocus
i=0’輸入次數(shù)初始化
EndSub
2.在工程1中,添加筆者設(shè)計(jì)的考試系統(tǒng)窗體ksxt,有一密碼設(shè)置子菜單,名為szmm
PrivateSubszmm_Click()
mmsz.show’單擊mmsz菜單項(xiàng)顯示密碼設(shè)置窗體
EndSub
3.在工程1中,添加窗體Form2,命名為mmsz,標(biāo)題為“密碼設(shè)置”,當(dāng)用戶需要更改密碼時(shí),可以在程序中調(diào)用此窗體。這個(gè)窗體需要正確接收用戶輸入的密碼,并且將兩次輸入的密碼進(jìn)行比較,當(dāng)符合要求時(shí)將密碼存入config.txt文件中。在窗體中添加文本框(text1)用于用戶輸入密碼,添加文本框(text2)用于用戶對(duì)輸入的密碼進(jìn)行確認(rèn),,兩個(gè)命令按鈕(Command1、Command2)的標(biāo)題分別為:“確認(rèn)”、“取消”,創(chuàng)建好的窗體如下圖所示。將兩個(gè)文本框的PasswordChar屬性都設(shè)為*,程序代碼如下:
PrivateSubCommand1_Click()’密碼設(shè)置程序
IfText1.Text=Text2.TextThen
’確認(rèn)兩次輸入密碼是否一致
passwordstr="text2.text"
Open"config.txt"ForOutputAs#1
Print#1,Text1.Text
Close#1
UnloadMe
Else
x=MsgBox("密碼輸入錯(cuò)誤!請(qǐng)重新輸入!",17,"警告")
Text2.SetFocus
EndIf
EndSub
PrivateSubCommand2_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
Me.Move(Screen.Width-Me.Width)
/2,(Screen.Height-Me.Height)/2
Show
Text1.SetFocus
EndSub
|
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注