VB.NET-将文本追加到文本文件的最后一行(有时)会留下一行空行



我正在编写的软件的目的是在文本文件的最后一行附加一个字符串。我遇到的问题是,根据具体情况,有时当我试图将文本附加到文本文件的最后一行时,会得到一行空行。

我的文本文件非常简单。它包含几行文本,每行包含几个单词。当我用Windows的记事本打开文本文件(不编辑文本文件的内容(并将插入符号移动到整个文件的末尾时,有时插入符号位于包含内容(文本(的最后一行的末尾,有时它位于甚至不包含空白的空行。

当插入符号的结束位置对应于包含文本的行的最后一个字符时,我在以编程方式附加某些文本时不会遇到任何问题。以编程方式附加的行位于新行,并且在文本文件中的旧最后一行和当前最后一行之间没有任何空行。

当我可以将文本文件中的插入符号移动到最后一个可能的位置,并且该位置对应于空行时,问题就会出现。在这种情况下,当我尝试以编程方式追加新行时,我可以在刚刚添加的行之前看到一个空行。

我尝试过不同的代码和技术,但它总是发生在我身上

我实际使用的代码是:

If stringLastLine.Length = 0 Then
Using sw As StreamWriter = New System.IO.StreamWriter(filePath, True) 
sw.Write("Inserted text")
sw.Close()
End Using
ElseIf stringLastLine.Length > 0 Then
Using sw As StreamWriter = New System.IO.StreamWriter(filePath, True) 
sw.Write(Environment.NewLine & "Inserted text")
sw.Close()
End Using
End If

基本上,我试图检测最后一行的长度是否超过零,所以这是一行包含文本内容,我将使用"environment.newline+string"。如果这是一行没有内容(长度=0(,我直接添加字符串,而不使用"environment.newline"。如果长度=0,我总是在中间有一行空行。

有解决这个问题的办法吗?

如何修剪文本以确保末尾(整个文本(没有行尾字符?现在你可能有多个空行的问题:

text = text.TrimEnd({Convert.ToChar(10), Convert.ToChar(13)})

这将处理EOL字符。

最新更新