2013-11-18 2 views
0

я сумел объединить два текстовые файлы вместе с помощью этого кодаОбъединение нескольких текстовых файлов в один, с чередующимися линиями

For Each foundFile As String In 
     My.Computer.FileSystem.ReadAllText("path") 
     foundFile = foundFile 
     My.Computer.FileSystem.WriteAllText("path", foundFile, True) 
    Next 
    extraline = vbCrLf 
    My.Computer.FileSystem.WriteAllText("path", extraline, True) 
    My.Computer.FileSystem.WriteAllText("path", extraline, True) 
    For Each foundFile2 As String In 
        My.Computer.FileSystem.ReadAllText("path") 
     foundFile2 = foundFile2 
     My.Computer.FileSystem.WriteAllText("path", foundFile2, True) 
    Next 

Он объединяет их, однако я хотел бы, чтобы слить два текстовые файлы на одну строки время. например

Textdoc1 содержит

First Line 
Third Line 

Textdoc2 содержит

Second Line 
Fourth Line 

Я хотел бы выходной файл содержит:

First line 
Second Line 
Third Line 
Fourth Line 

любая помощь очень ценится, спасибо!

ответ

0

Вы должны использовать ReadAllLines вместо ReadAllText. Вот краткий пример, чтобы показать вам, как это может работать (я не проверял этот код, это просто для справки)

Dim linesFromFile1() As String 
Dim linesFromFile2() As String 
Dim combinedLines As New List(Of String) 

linesFromFile1 = System.IO.File.ReadAllLines("file1") 
linesFromFile2 = System.IO.File.ReadAllLines("file2") 

For linePos As Integer = 0 To System.Math.Max(linesFromFile1.Length, linesFromFile2.Length) - 1 
    If linePos < linesFromFile1.Length Then combinedLines.Add(linesFromFile1(linePos)) 
    If linePos < linesFromFile2.Length Then combinedLines.Add(linesFromFile2(linePos)) 
    Next 

System.IO.File.WriteAllLines("file3", combinedLines.ToArray()) 

Если у вас есть очень большой файл, то я предлагаю вам посмотреть в использовании StreadReader вместо этого. Таким образом вы можете read a line без загрузки всего сразу.

+0

Отлично, именно то, что я искал! спасибо – user3003346

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