0

我一直在寻找并尝试多种解决方案来解决我遇到的这个问题。我正在尝试将文本框的结果保存为 .txt 文件中的一行文本。

这是我尝试调用 StreamWriter 执行此操作之前、何时和之后的代码。

    If inttAnswer = vbOK Then
                totalprofiles.Write(filename & vbNewLine) '*this is not working*
                txtProfileName.Text = ""
                Me.Hide()
                Profiles.StartPosition = FormStartPosition.Manual
                Profiles.Location = Me.Location
                Profiles.Show()
    End If

这是我在这部分代码中使用的任何声明,它是按下按钮时发生的代码块的一部分:

    Dim totalprofiles2 As String = "C:\SameSens\Profiles\TotalProfiles.txt"
    Dim totalprofiles As New System.IO.StreamWriter(totalprofiles2, True)

    Dim inttAnswer As Integer
    Dim filename As String = txtProfileName.Text

谢谢你的帮助。如果这是不可能的,也许您可​​以建议一个不同/更好的替代方法,以便能够在按下此特定按钮后将 txtProfileName.Text 中的文本永久地作为项目填充 ComboBox。我认为用 .txt 文件内容填充 ComboBox 将是最简单和最实用的方法,但事实证明它比我想象的要困难。

4

3 回答 3

1

你可以试试这个

File.WriteAllText("c:\textfile.txt", TextBox1.Text)

但请参考;

Imports System.IO
于 2013-08-16T14:37:23.823 回答
1

如果要写入文件一次,请执行以下操作:

Dim path As String = "PathToYourFile.txt"
Dim sw As StreamWriter

If File.Exists(path) = False Then 
    ' Create a file to write to.
    sw = File.CreateText(path)

    sw.WriteLine(TextBox1.Text)

    sw.Flush()
    sw.Close()
End If

如果您想继续附加到文件并让它随着时间的推移而增长,请执行以下操作:

Dim path As String = "PathToYourFile.txt"
Dim sw As StreamWriter

If File.Exists(path) Then 
    ' Append text to file, adding new text to the end of the file
    sw = File.AppendText(path)

    sw.WriteLine(TextBox1.Text)

    sw.Flush()
    sw.Close()
End If

注意:建议你使用Usingblock语句(我省略了它,因为我不确定你是否知道它是什么并且不想引起混淆),它会自动关闭StreamWriter对象,即使发生错误,比如这个:

' Create a file to write to.
Using sw = File.CreateText(path)
    sw.WriteLine(TextBox1.Text)

    sw.Flush()
End Using

如您所见,它使代码更简单,并消除了清理StreamWriter对象的烦恼。

于 2013-08-16T14:43:28.243 回答
0

事实证明我能够很容易地解决这个问题。再次告诉我我不应该熬夜编码:/

我所要做的就是添加以下行:

    totalprofiles.Close()

直接在启动 StreamWriter 之后。否则它似乎不想写任何东西,不管它来自什么。

非常感谢两位提供帮助的人,它教会了我“使用”语句的有用性,我一定会尝试将其纳入我的程序中。

于 2013-08-17T02:06:28.057 回答