我目前正在使用
在VB.Net中的文本文件中阅读Dim fileReader As String
fileReader = My.Computer.FileSystem.ReadAllText(file)
文件包含几行文字,当我在文本文件中读取时,它知道它们在不同的行上并相应地打印出来。
但是,当我尝试将fileReader拆分为不同行的数组时,即使我使用Split(ControlChars.Cr)
或Split(ControlChars.NewLine)
,换行符也会保留在那里。它会成功地将它分成单独的行,但是当我显示它时,它会将文本“推”到一行,就像换行仍在那里......
有没有人对正在发生的事情以及如何删除这些“看不见的”控制字符有任何想法。
文字档案:
测试1
Test2的
TEST3
TEST4
的FileReader:
测试1
Test2的
TEST3
TEST4
lines()打印输出
测试1
Test2的
TEST3
TEST4
答案 0 :(得分:4)
在每一行上使用trim()
,它会删除多余的空格。
答案 1 :(得分:2)
System.IO.File类有一个ReadAllLines方法,它实际上会返回一个字符串数组,每行一个。
如果该方法不起作用,我会仔细检查导致问题的字节。在监视窗口中,您可以执行System.Text.Encoding.ASCII.GetBytes(sampleLine)并准确检查您正在使用的内容。
我假设您正在使用ASCII编码,否则,您需要使用正确的选项替换ASCII,然后根据该编码修改您的文件读取。
答案 2 :(得分:1)
如前所述,使用Readalllines方法自动拆分。
您遇到的问题是PC ASCII文件通常用回车符和新行分开,只拆分一行就会离开另一行。您可以按照提到的方式进行拆分和修剪,或者使用拆分字符串而不是字符的其他拆分。
dim s()as string = Split(fileReader,vbCrLf)
修剪也会删除数据中的空格,具体取决于您可能遇到的问题。
答案 3 :(得分:0)
最近遇到了类似的问题。 Trim()不起作用,因为在执行拆分(或使用File.ReadAllLines)之后,额外的行已经存在。这对我有用:
Dim allText As String = System.IO.File.ReadAllText(filePath)
allText = allText.Replace(Chr(13), "")
Dim lines As String() = allText.Split(vbLf)
Chr(13)是Control-M字符,它使用Split()或File.ReadAllLines产生额外的行。