繁体   English   中英

如何从 VB.NET 中的 2 个文本文件中读取特定行

[英]How to read a specific line from 2 text file in VB.NET

我正在创建一个程序,该程序应该将 ReadLine 文本转换为 2 个文本文件我能够从文本文件中读取文本,但我不知道如何控制特定的行。

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 退出循环我无法编写此代码请帮助我任何帮助将不胜感激。 谢谢!

您需要 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 循环还测试i1 + rep < numbers1.Length以确保行数不是 3 的倍数的Number1.txt文件不会抛出索引Number1.txt异常。

然后你可以写输出文件

Dim numbers1 As String() = File.ReadAllLines("Number1.txt")
Dim numbers2 As String() = File.ReadAllLines("Number2.txt")
File.WriteAllLines("File3.txt", Combine(numbers1, numbers2))

也可以看看:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM