我正在使用vb.net。下面是我读取txt文件的代码,我的txt文件非常大。我成功读取并在txt2.Text中显示我的Test.txt,我希望我的输出在Test.txt中逐行显示在txt2.Text中,我已将我的txt2.Text设置为多行。因此,当我放大我的txt2.Text时,我的输出将与Test.txt文件中的输出相同。我如何在我的代码中使用VbCrLf?
Dim filename As String = "C:\Users\user\Documents\Test.txt"
Dim Line As String = ""
Dim sb As New StringBuilder
Using sr As StreamReader = File.OpenText(filename)
Line = sr.ReadLine
Do
If Line = "*" Then
Line = sr.ReadLine
Do
sb.Append(Line)
Line = sr.ReadLine
Loop Until Line = "**"
End If
Line = sr.ReadLine
Loop Until Line = ""
End Using
txt2.Text = sb.ToString
End Sub
答案 0 :(得分:1)
您的循环从输入行中删除CarriageReturn和LineFeed字符 你可以读到他们改变这一行
sb.Append(Line)
到
sb.AppendLine(Line)
但很快就会发现你有更大的问题 在循环内部,您可以执行各种ReadLine,而无需检查是否有另一行可供读取。我不知道你文件的结构,但建议进行某种错误检查。
答案 1 :(得分:0)
使用这样的文本文件:
testdata10
*
testdata1
testdata2
testdata3
testdata4
testdata5
**
testdata11
假设在*
到达之前不再有**
,此代码会将相应的行添加到文本框中:
Using sr As New IO.StreamReader("textfile1.dat")
Dim line As String = ""
While Not sr.EndOfStream
line = sr.ReadLine
If line = "*" Then
Do
TextBox1.AppendText(sr.ReadLine & vbNewLine)
Loop Until sr.Peek = Asc("*"c)
End If
End While
End Using