#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());