Вам нужно 3 вложенных цикла. Но я бы создал вспомогательную функцию в качестве итератора. Это облегчает использование выходных данных.
Private Shared Iterator Function Combine(
ByVal numbers1 As String(), ByVal numbers2 As String()) As IEnumerable(Of String)
Dim repetitions As Integer = 3
Dim i1 As Integer = 0
While i1 < numbers1.Length
For i2 As Integer = 0 To numbers2.Length - 1
Dim rep As Integer = 0
While rep < repetitions AndAlso i1 + rep < numbers1.Length
Yield $"{numbers1(i1 + rep)} {numbers2(i2)}"
rep += 1
End While
Next
i1 += repetitions
End While
End Function
Самый глубокий вложенный модуль While-l oop также проверяет i1 + rep < numbers1.Length
, чтобы убедиться, что файлы Number1.txt
с числом строк, не кратным 3, делают не выбрасывать индекс из связанной исключительной ситуации.
Затем вы можете записать выходной файл с помощью
Dim numbers1 As String() = File.ReadAllLines("Number1.txt")
Dim numbers2 As String() = File.ReadAllLines("Number2.txt")
File.WriteAllLines("File3.txt", Combine(numbers1, numbers2))
См. также: