[英]Write to existing text file
我正在嘗試創建一個SignUpForm。 程序啟動時會創建新文件,其中一方寫入用戶名,另一方寫密碼。 這是我到目前為止所做的,但是並不會一遍又一遍地寫。 請幫忙。 謝謝!
Imports System.IO
Imports System.IO.File
Public Class SignUpForm
Dim cnt As Integer
Dim g As Integer
Dim fileMembers As New System.IO.StreamWriter("Members.txt")
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked Then
TextBox2.PasswordChar = ""
TextBox3.PasswordChar = ""
Else
TextBox2.PasswordChar = "*"
TextBox3.PasswordChar = "*"
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If TextBox2.Text = TextBox3.Text And TextBox4.Text = recaptcha.Text Then
test()
MsgBox("Passwords Match, Logged It!")
Me.Close()
End If
If TextBox2.Text <> TextBox3.Text Then
MsgBox("Passwords Do Not Match")
TextBox2.Text = ""
TextBox3.Text = ""
End If
If TextBox4.Text <> recaptcha.Text Then
MsgBox("The verification code isn't valid")
TextBox4.Text = ""
End If
End Sub
Private Sub SignUpForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
cnt = 0
g = 1
End Sub
Private Sub Main()
fileMembers.WriteLine("Username" + " : " + "Password")
fileMembers.WriteLine("===================")
fileMembers.Close()
End Sub
Private Sub test()
If Not File.Exists("Members.txt") Then
Using sw As StreamWriter = File.CreateText("Members.txt")
sw.WriteLine("")
End Using
End If
Using sw As StreamWriter = File.AppendText("Members.txt")
sw.WriteLine(TextBox1.Text + " : " + TextBox2.Text)
End Using
Using sr As StreamReader = File.OpenText("Members.txt")
Do While sr.Peek() >= 0
Console.WriteLine(sr.ReadLine())
Loop
End Using
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
cnt = cnt + 1
Label4.Text = Str(cnt)
End Sub
End Class
(我的問題是,在登錄成功后,它應該寫入用戶名和密碼,然后關閉程序。程序ether關閉,不寫或發出錯誤,說無法訪問該文件,因為它在采用)
首先請注意 - 永遠不要在PC或其他任何地方寫入文件的登錄名和密碼。
不過,我為您的問題做了一個快速而骯臟的編碼。 因此,請閱讀代碼並嘗試從那里學習。 當然,許多其他解決方案是可能的。 您必須清理代碼,例如'TextBox2'=> Pwd,'TextBox3'=> PwdRepeated以便更好地閱讀。 快樂的編碼......
試試看 ...
Imports System.IO
Imports System.IO.File
Public Class Form1
Dim cnt As Integer
Dim g As Integer
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked Then
TextBox2.PasswordChar = ""
TextBox3.PasswordChar = ""
Else
TextBox2.PasswordChar = "*"
TextBox3.PasswordChar = "*"
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If TextBox2.Text = TextBox3.Text And TextBox4.Text = lblrecaptcha.Text Then
test()
MsgBox("Passwords Match, Logged It!")
Me.Close()
End If
If TextBox2.Text <> TextBox3.Text Then
MsgBox("Passwords Do Not Match")
TextBox2.Text = ""
TextBox3.Text = ""
End If
If TextBox4.Text <> lblrecaptcha.Text Then
MsgBox("The verification code isn't valid")
TextBox4.Text = ""
End If
End Sub
Private Sub SignUpForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
cnt = 0
g = 1
'--- open or create the file ----------
Dim fs As FileStream = New FileStream(My.Computer.FileSystem.CombinePath(Application.StartupPath.ToString, "members.txt"), FileMode.OpenOrCreate, FileAccess.ReadWrite)
Dim s As StreamWriter = New StreamWriter(fs)
s.WriteLine("Username" + " : " + "Password")
s.WriteLine("===================")
s.Close()
s.Close()
fs.Close()
cnt = cnt + 1
Label4.Text = "DE-" + Trim(Str(cnt))
lblrecaptcha.Text = "DE-" + Trim(Str(cnt))
End Sub
Private Sub test()
'--- log it ----------
Dim fs1 As FileStream = New FileStream(My.Computer.FileSystem.CombinePath(Application.StartupPath.ToString, "members.txt"), FileMode.Append, FileAccess.Write)
Dim s1 As StreamWriter = New StreamWriter(fs1)
s1.WriteLine(TextBox1.Text + " : " + TextBox2.Text)
s1.WriteLine(DateTime.Now.ToLongTimeString() + TextBox1.Text + " : " + TextBox2.Text)
s1.Close()
fs1.Close()
Dim sOut As String
sOut = My.Computer.FileSystem.ReadAllText("Members.txt")
Console.WriteLine(sOut)
End Sub
End Class
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.