2014-02-11 183 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,但它搞乱了线条。感谢您花时间看着它。 –