GHo*_*iRo 3 vb.net foreach loops listboxitems
我做了一个应用程序将某些数字转换为其他格式
即
- 1 = A.
- 2 = B.
- 3 = C.
- 4 = D.
- 5 = E.
- 等等
我已经完成了这个功能没有问题,我已经使用了很长一段时间,但现在我想更快地批量做事.
因此,我很难从文本文件复制到Textbox1然后按button1然后将textbox2复制到其他文本文件.
所以我在考虑将文本文件加载到列表框中,然后对该列表中的每个项目执行循环,将其导入到可以导出到另一个文本文件的第二个列表中.
导入和导出我已经覆盖但我坚持的是制作循环.
如果你知道一个更好的方法让我知道或者告诉我如何以这种方式修复它,那么这就是我所拥有的.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Using FD As New OpenFileDialog()
FD.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
If FD.ShowDialog = Windows.Forms.DialogResult.OK Then
ListBox1.Items.Clear()
ListBox1.Items.AddRange(IO.File.ReadAllLines(FD.FileName))
End If
End Using
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Do
Dim Item As String = ""
For Each i As String In ListBox1.Items
Item &= i
TextBox1.Text = Item
TextBox2.Text = MYFUNCTION(TextBox1.Text)
ListBox2.Items.Add(TextBox2.Text)
TextBox1.Text = ""
TextBox2.Text = ""
Next
Loop Until TextBox1.Text = "END"
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
'TextBox2.Text = MeidHexToDec(TextBox1.Text)
Using FD As New SaveFileDialog()
FD.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
If FD.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim FileContent As String = ""
For Each i As String In ListBox2.Items
FileContent &= i & vbCrLf
Next
IO.File.WriteAllText(FD.FileName, FileContent)
End If
End Using
End Sub
Run Code Online (Sandbox Code Playgroud)
所以我的最终目标是做这样的事情:
TextFile1.txt
- 1
- 2
- 五
- 五
- 1
- 3
- 2
- 结束
然后转换输出
TextFile2.txt
- 一个
- 乙
- Ë
- Ë
- 一个
- C
- 乙
文本文件大小会有所不同,有时只有10个项目有时会是50 ...谢谢.
您根本不需要Do循环,您可以简化循环逻辑的其余部分,如下所示:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
For Each i As String In ListBox1.Items
ListBox2.Items.Add(MYFUNCTION(i))
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
您不需要注意END标记,因为文件中的所有内容都被读入ListBox1.Items集合中,因此一旦您遍历了所有字符串值ListBox1.Items,那么您就在文件的末尾.
该MYFUNCTION逻辑返回从数信的改造,从而只需添加该功能到的结果ListBox2.Items和你做.