Как прочитать указанную c строку из 2 текстовых файлов в VB.NET - PullRequest
0 голосов
/ 16 февраля 2020

Я создаю программу, которая должна считывать текст ReadLine в текстовый файл 2 Я могу прочитать текст из текстового файла, но я не знаю, как управлять определенной c строкой.

Number1.txt строк

1:1
2:2
3:3
4:4
5:5
6:6
...
EOF

Number2.txt строк

Save
Skip
Discount
...
EOF

Я хочу читать вывод строки: -

1:1 save
2:2 save
3:3 save
1:1 Skip
2:2 Skip
3:3 Skip
1:1 Discount
2:2 Discount
3:3 Discount
4:4 save
5:5 save
6:6 save
4:4 Skip
5:5 Skip
6:6 Skip
4:4 Discount
5:5 Discount
6:6 Discount
...
EOF

3 строки text1 До 1 строки text2 iF EOF text2 выходной цикл Я не могу написать этот код Пожалуйста, помогите мне Любая помощь будет оценена. Спасибо!

1 Ответ

1 голос
/ 16 февраля 2020

Вам нужно 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))

См. также:

...