如果不是换行,则加上换行。
关键是不知道怎么得到最后一个字符,用StreamReader的ReadLine(),没法判断
比如下面这种情况,就不用加换行符了:

------解决方案--------------------
Dim s As String = sr.ReadToEnd()
If s.Substring(s.Length - 1, 1) <> Chr(10) Then
s = s + Chr(10)
End If
sr.Close()
------解决方案--------------------
Dim s As String = File.ReadAllText("c:\1.txt")
If Right(s, 1) = VbCr Or Right(s, 1) = VbLf Then
...
End If
------解决方案--------------------
string s=ReadLine();
if(s[s.Length-1]!='\r')
{
s+="\r";
}
------解决方案--------------------
Imports System.IO
Module Module1
Sub Main()
Dim sr As New StreamReader("C:\temp\1.txt")
Dim sLine As String = String.Empty
Dim i As Integer = 0
While Not sr.EndOfStream
i += 1
sLine = sr.ReadLine
Debug.Print(i & ": """ & sLine & """")
End While
Debug.Print("Last = """ & sLine & """")
If sLine.Length = 0 Then
Debug.Print("HAS blank line!")
Else
Debug.Print("NO blank line!")
End If
End Sub
End Module
实测了一下,14后面是否有空行,都算 EndOfStream!
你怎么控制 ReadLine 的?
所以就是每次 ReadLine 都加换行。