本网站上的新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
答案 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)