2014-02-11 235 views
1

我正在嘗試將我的文本框的內容寫入一個txt文件。VB.Net寫入Txt文件

我的代碼工作正常,但我的錯誤是,當我打開txt文件我看到

writeline1writeline2writeline3 

代替

writeline1 
writeline2 
writeline3 

我的代碼;

result As List(Of String) = New List(Of String) 
convertedText.Lines = result.ToArray() 
My.Computer.FileSystem.WriteAllText(mypath & "\convertedcontent.txt", convertedText.Text, False) 

寫入.csv和許多其他類型的文件正常工作,但我不知道如何打破文本文件中的行。

在此先感謝

+0

追加'Environment.NewLine'每行 – Plutonix

+0

你可以用'System.IO.File.WriteAllLines(路徑,result.ToA rray())' –

+0

謝謝蒂姆。這種方法奏效。 –

回答

3

我會用System.IO.File.WriteAllLines

Dim path = System.IO.Path.Combine(mypath, "convertedcontent.txt") 
System.IO.File.WriteAllLines(path, result) 

否則,你需要附加Environment.NewLine每個行,你可以使用String.Join

System.IO.File.WriteAllText(path, String.Join(Environment.NewLine, result)) 
+0

謝謝蒂姆。我想我正在使用錯誤的方法。這對於.csv,.xls,vs來說工作得很好,但是我對txt文件沒有好運。 –

1

您需要添加& vbCrLf到您的字符串(每行)

不知道你在哪裏得到您的字符串..但你必須添加載體符/換行符字符添加到這些字符串中,每個字符串末尾有一個字符。

可能只是通過你的數組循環並將它們添加到那裏?

P.S.一些評論到達那裏是有更快的方式,但是這可能是幕後發生了什麼......

for i = 0 to convertedText.Lines.count -1 
    convertedText.Lines(i) += vbCrLf 
next 
+0

我已經嘗試在每行的末尾添加新行,但這不是錯誤。文本框可以在添加或不添加新行命令的情況下創建行。但顯然convertedText.Text將其轉換回1行。 –

+0

我看到......有趣。如上所述的書寫線應該做的伎倆? –

+1

是的,System.IO.File.WriteAllLines工作。我也嘗試添加ToArray等所有可能的選項My.Computer.FileSystem.WriteAllText,但沒有奏效。它只支持.Text,但它搞亂了線條。感謝您花時間看着它。 –