我正在编写的软件的目的是在文本文件的最后一行附加一个字符串。我遇到的问题是,根据具体情况,有时当我试图将文本附加到文本文件的最后一行时,会得到一行空行。
我的文本文件非常简单。它包含几行文本,每行包含几个单词。当我用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字符。