2014-12-05 36 views
-1

我想保存一个列表框的内容到一个txt文件,然后打开它并将其打印到第二个列表框。我已经完成了大部分,但我的实际文件不是一个txt文件。你能告诉我如何使用我的代码使文件成为一个txt文件吗?如果这是不可能的,你能告诉我一个代码可以吗?列表框的内容写入一个txt文件,然后打开它

Private Sub LoadButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LoadButton.Click 
    If OpenFD.ShowDialog() = DialogResult.OK Then 
     Dim lines = File.ReadAllLines(OpenFD.FileName) 
     ListBox2.Items.Clear() 
     ListBox2.Items.AddRange(lines) 
    End If 
End Sub 

Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveButton.Click 
    If SaveFD.ShowDialog() = DialogResult.OK Then 
     Using Writer = New StreamWriter(SaveFD.FileName) 
      For Each o As Object In ListBox1.Items 
       Writer.WriteLine(o) 
      Next 
     End Using 
    End If 
End Sub 
+1

写入字符串也许该文件。 – Plutonix 2014-12-05 18:56:47

+0

来自MSDN,'StreamWriter.WriteLine(object)':*通过在该对象上调用ToString方法,然后在文本字符串或流的行结束符处写入对象的文本表示形式。*应该可以 – djv 2014-12-05 20:20:05

+0

什么问题你试图解决这个问题导致了解决方案?我的XY问题雷达正在发展...... – Mystra007 2014-12-05 21:40:29

回答

2

您可以只使用File.WriteAllText方法(用字符串生成器一起)。我的意见是,它更干净的代码。

Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveButton.Click 
    If SaveFD.ShowDialog() = DialogResult.OK Then 
     Dim sb As New System.Text.StringBuilder() 

     For Each o As Object In ListBox1.Items 
      sb.AppendLine(o) 
     Next 

     System.IO.File.WriteAllText("c:\mypath\output.txt", sb.ToString()) 
    End If 
End Sub 
+0

我不允许写一条路径。我必须把我的节目交给另一个人,这样他们的路可能会有所不同。有没有另一种方式?我需要用户选择保存位置 – 2014-12-05 19:08:32

+0

然后用'SaveFD.FileName'替换''c:\ mypath \ output.txt''' – 2014-12-05 19:46:46

+0

我不知道为什么,但是我在'sb.AppendLine(o )'。任何想法为什么? – 2016-06-15 15:02:36

0
System.IO.File.WriteAllText(Application.StartupPath & "\output.txt", sb.ToString()) 
相关问题