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

时间:2018-07-18 17:36:01

标签: vb.net winforms

我正在编写的软件的目的是将字符串附加到文本文件的最后一行。我遇到的问题是,根据情况,有时在尝试将文本追加到文本文件的最后一行时会出现空白行。

我的文本文件非常简单。它包含几行文本,每行包含几个单词。当我使用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 +字符串”。如果这是没有内容的行(长度= 0),则直接添加字符串,而不使用“ environment.newline”。在length = 0的情况下,我总是会在它们之间留空行。

有解决这个问题的主意吗?

1 个答案:

答案 0 :(得分:2)

如何修剪文本以确保末尾(整个文本)没有行尾字符?现在,您可能会遇到多个空白行的问题:

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

这处理EOL字符。