删除最后一行中的CRLF

时间:2011-04-21 02:48:03

标签: .net vb.net loops

如何删除下面的最后一个crlf代码?

  Dim fh As StreamReader
  Dim temp as string
  Dim temp1 as string
  fh = new StreamReader("haggis.txt")
  Dim s As String = fh.ReadLine()
  While not s Is Nothing

    temp = temp & s & Vbcrlf

  Console.WriteLine(temp)

  End While
  fh.Close()

haggis.txt

AAAA   
BBBB


'Return 
AAAA
BBBB
crlf  <---- I want to remove this.

3 个答案:

答案 0 :(得分:1)

请尝试相反:使用File.ReadAllLines(),这样您根本不必使用vbCrLf。它将所有行加载到字符串数组中。

 Dim readText() As String = File.ReadAllLines("haggis.txt")
 Dim s As String
 For Each s In readText
     Console.WriteLine(s)
 Next

答案 1 :(得分:0)

这可能是一个简单的解决方案

    For Each 
        Do
            If (String.IsNullOrEmpty(strline)) Then
                strline = strline & objSR.ReadLine()
            Else
                strline = vbCrLf & objSR.ReadLine()
            End If
            objwriteline.strline()
        Loop
    Next

答案 2 :(得分:0)

您不应该在循环中进行直接String连接。我意识到上面的代码也只是一个例子,但是你永远不会在你的循环中更新s,因此如果它进入它就会是一个无限循环。

假设你修复了这个问题,你想使用StringBuilder进行String连接:

Dim temp As New System.Text.StringBuilder()

While s IsNot Nothing

    temp.Append(s).Append(vbCrLf)

End While

Dim answer As String = ""

' avoid trying to get a substring if it's blank
If temp.Length <> 0 Then

    answer = temp.ToString(0, temp.Length - vbCrLf.Length)

End If

要在没有最后一个vbCrLf的情况下获取它,只需将其切断,就像我上面那样。