2015-03-26 2 views
0

Я слияние нескольких текстовых файлов в один, используя VB.Net. Он правильно сглаживает текстовые файлы, однако в верхней части текстового файла появляется пустая строка, это означает, что я не могу правильно прочитать текстовый файл. Любая идея о том, как удалить эту пустую строку, будет очень благодарна. Вот код, который у нас есть.Слияние текстовых файлов без пустой строки в начале текстового файла

Dim lines As String() = File.ReadAllLines("7UP.txt") 
Dim firstLine As String = lines.First 
Dim lastLine As String = lines.Last 

Using addProducts = File.AppendText("Top5.txt") 
    addProducts.WriteLine(lines.First) 
    addProducts.WriteLine(lines.Last) 
End Using 

lines = File.ReadAllLines("Americano.txt") 

Using addProducts = File.AppendText("Top5.txt") 
    addProducts.WriteLine(lines.First) 
    addProducts.WriteLine(lines.Last) 
End Using 

lines = File.ReadAllLines("AppleJuice.txt") 

Using addProducts = File.AppendText("Top5.txt") 
    addProducts.WriteLine(lines.First) 
    addProducts.WriteLine(lines.Last) 
End Using 
+1

какая проблема с .Trim()? – InferOn

+0

где я буду размещать .Trim()? – VB123

ответ

1

Это даст вам только те строки, которые имеют данные:

Dim lines As String() = 
    File.ReadAllLines("7UP.txt"). 
    Where(Function(x) x.Trim <> String.Empty). 
    ToArray() 

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

Private Sub PerformMerge() 

    Const top5File As String = "Top5.txt" 

    MergeData(GetLinesWithData("7UP.txt"), top5File) 
    MergeData(GetLinesWithData("Americano.txt"), top5File) 
    MergeData(GetLinesWithData("AppleJuice.txt"), top5File) 

End Sub 

Private Function GetLinesWithData(sourceFile As String) As String() 

    Return File.ReadAllLines(sourceFile). 
     Where(Function(x) x.Trim <> String.Empty). 
     ToArray() 

End Function 

Private Sub MergeData(lines As String(), destinationFile As String) 

    Using addProducts = File.AppendText(destinationFile) 
     addProducts.WriteLine(lines.First) 
     addProducts.WriteLine(lines.Last) 
    End Using 

End Sub 
Смежные вопросы