如何在文本框中格式化我的输出与vb.net中的txt文件内部相同?

时间:2013-09-30 15:57:56

标签: vb.net

我正在使用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

2 个答案:

答案 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