循环文本文件中的内容

时间:2014-11-21 05:15:07

标签: vb.net

本网站上的新TechGuy。因为我已经准备好毕业并想要更多的编程实践,所以我认为这是足智多谋的。我有一个问题:

我尝试循环浏览我创建的文本文件,并且我想用单词&#34替换3的每个倍数;更改"。我创建了一个文本文件,并在每行输入数字1-15。我的代码在下面,但由于某种原因,它只会更改数字3和13.我尝试使用此链接作为资源(Loop through the lines of a text file in VB.NET),但这并没有帮助。无论如何,这是我的代码,有人可以帮我解决我的错误吗?

Public Class numbers

  Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load


    Dim OpenFilePrompt As New OpenFileDialog
    openFilePrompt.ShowDialog()
    Dim currentReader As New System.IO.StreamReader(OpenFilePrompt.FileName)
    txtInput.Text = currentReader.ReadToEnd

    Dim a As String

    Dim numbers As New List(Of String)

    a = txtInput.Text
    numbers.Add(a)

    Dim b As Integer

    For i = 0 To numbers.Count Step 3
        b = b + 3

        TextBox2.Text = (numbers.Item(i).Replace(b.ToString, "Changed"))

    Next


  End Sub


End Class 

1 个答案:

答案 0 :(得分:0)

您将numbers(第一项)设为a,即txtInput.Text。 然后你有一个单一的名单,这是完全没用的!

您应该使用Mod代替。

  

除以两个数字并仅返回余数。

因此,请检查Integer Mod 3是否等于0

另请考虑使用File.ReadAllLines(String)Val(String)String.Join(String, String())File.WriteAllLines(String, String())

Dim Content() As String = File.ReadAllLines(OpenFilePrompt.FileName)
For Index As Integer = 0 To Content.Length - 1
    Dim Number As Integer = Val(Content(Index))
    If Number Mod 3 = 0 Then
        Content(Index) = "changed"
    End If
Next
txtInput.Text = String.Join(vbCrLf, Content)
File.WriteAllLines(OpenFilePrompt.FileName, Content)