从文本读取文件并创建循环

时间:2020-02-26 08:51:29

标签: vb.net

我有一个文本文件,并带有一些行示例

enter image description here

我想遍历每一行,直到创建格式行+1所有单词,当然,最大值必须可调

赞这个 enter image description here

感谢所有帮助

我的代码

  Sub homework()
        ' Dim words(5) As String
        Dim words As String() = File.ReadLines("test.txt")
        Dim i As Integer
        Dim outerLoop As Integer
        Dim innerLoop As Integer

        For i = 0 To words.Length ' i dont know how to set file line length 
            words(i) = words(i) & i + 1
        Next i

        For outerLoop = 0 To UBound(words)
            For innerLoop = 0 To UBound(words)
                If outerLoop = innerLoop Then
                    ListBox1.Items.Add(words(outerLoop) & "-" & words(innerLoop))
                End If
            Next
        Next outerLoop


    End Sub

输出后

enter image description here

这里的问题不是读取文本文件中的所有行,而是仅处理最后一行。

2 个答案:

答案 0 :(得分:1)

不需要第一个循环,并如下修改第二个循环:

Sub homework()
    ' Dim words(5) As String
    Dim words As String() = File.ReadLines("test.txt")
    Dim i As Integer
    Dim outerLoop As Integer
    Dim innerLoop As Integer

    ' This Loop is not required.
    'For i = 0 To words.Length 
    '   words(i) = words(i) & i + 1
    'Next i

    For outerLoop = 0 To UBound(words)
        For innerLoop = 1 To MaxValue
            Dim str as string
            str = words(outerloop) & "-" & innerLoop
            ListBox1.Items.Add(str & "-" & str)                
        Next
    Next outerLoop
End Sub

答案 1 :(得分:1)

File.ReadLines返回String的IEnumerable,而File.ReadAllLines返回旧的String数组。他们的比赛规则略有不同。现在,您可能会更熟悉数组。

在外部循环中使用For Each循环要容易一些,因为您不必担心索引出或范围或获取UBound(words)转换为word.net中的GetUpperBound(0)。

对于内部循环,我们可以从1开始,然后转到传递给您的方法的值。

products.sellStatus = "Sold"
相关问题