我一直在寻找和尝试多种解决方案来解决这个问题。我正在尝试将文本框的结果保存为.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文件内容将是最简单和最实用的方法,但它的证明比我想象的要困难。
答案 0 :(得分:1)
你可以试试这个
File.WriteAllText("c:\textfile.txt", TextBox1.Text)
但是引用了一个;
Imports System.IO
答案 1 :(得分: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
注意:建议您使用Using
块语句(我省略了它,因为我不确定您是否知道它是什么并且不想引起混淆),这将自动关闭{ {1}}对象,即使发生错误,如下所示:
StreamWriter
正如您所看到的,它使代码更简单,并且无需担心清理' Create a file to write to.
Using sw = File.CreateText(path)
sw.WriteLine(TextBox1.Text)
sw.Flush()
End Using
对象。
答案 2 :(得分:0)
事实证明我能够很容易地解决这个问题。再次告诉我,我不应该熬夜编码:/
我所要做的只是添加一行:
totalprofiles.Close()
启动StreamWriter后直接启动。否则它似乎不想写任何东西,无论它是由什么产生的。
非常感谢那些帮助过的人,它教会了我“使用”声明的用处,我肯定会尝试将其纳入我的程序。