создание текстового файла в VB.NET добавление дополнительной строки

#vb.net

#vb.net

Вопрос:

Я пытаюсь создать текстовый файл с помощью приведенного ниже кода; но в конце всегда есть дополнительная строка, от которой я не могу избавиться. Есть ли какой-либо способ изменить этот код, чтобы записать текстовый файл без последней строки?? Помощь приветствуется:

 Imports System.IO
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim MekdamFile As String
    MekdamFile = "C:TEMPMEKDAM.txt"
    Dim dones As New List(Of String)
    For i = 1 To 10
        dones.Add("test test " amp; i)
    Next
    Using sw As New StreamWriter(MekdamFile)
        For Each i As String In dones
            sw.WriteLine(i)
        Next
    End Using
End Sub
End Class   
  

Заранее спасибо за помощь…

Комментарии:

1. Как выглядит ваш результат?

Ответ №1:

StreamWriter.WriteLine всегда записывает символ завершения строки.

На последней итерации цикла вы могли бы использовать sw.Вместо этого напишите.

Ответ №2:

Ваш код можно немного упростить:

 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
   File.WriteAllText("C:TEMPMEKDAM.txt", [String].Join( _
       Environment.NewLine, _
       Enumerable.Range(1, 10).[Select](Function(i) "Test test"   Cstr(i))))
End Sub
  

Ответ №3:

Вы вызываете WriteLine, поэтому все, что вы передадите в него, будет дополнено последовательностью символов новой строки.

Если вы не хотите вводить новую строку, используйте Write вместо WriteLine. Конечно, затем вы должны сами добавить новую строку для всех строк, кроме последней.

В качестве альтернативы, для небольшого текста просто создайте весь текст, затем обрежьте его конец и запишите его сразу:

 Dim sb As new StringBuilder();
For i = 1 To 10
    sb.AppendLine("line "   i);
Next
File.WriteAllText(path, sb.ToString().TrimEnd());