簡體   English   中英

寫入現有文本文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM