2014-12-05 56 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()) 
相關問題