15,000行列表框以增量方式保存

时间:2014-09-26 05:03:36

标签: vb.net listbox save increment

如何在列表框中删除15,000行并将其保存到文件夹中的其他文本文件中,增加100行。因此,我的列表框的前100行将保存到文件夹/ List1.txt中,包含100行等等。

1 个答案:

答案 0 :(得分:0)

首先导入以下命名空间。

Imports System.Threading.Tasks

收集并转换ListBox中的所有项目。使用GetItemText获取每个对象的字符串表示形式,如屏幕上所示。

Dim items As List(Of String) = (
    From o As Object
    In Me.ListBox1.Items
    Select Me.ListBox1.GetItemText(o)
).ToList()

定义文件路径。请勿删除{0},因为它将替换为“文件编号”。

Const path As String = "C:\Users\tantibus\Documents\List{0}.txt"

设置循环索引。如果您有15 000项,则toExclusive将设置为150

Dim fromInclusive As Integer = 0
Dim toExclusive As Integer = CType(Math.Ceiling(items.Count / 100.0R), Integer) 

如果您跳过(index * 100)100,请运行parallel for循环。将结果写入(新)文件。

Parallel.For(
    fromInclusive,
    toExclusive,
    Sub(index As Integer)
        Dim lines As IEnumerable(Of String) = items.Skip((index * 100)).Take(100)
        My.Computer.FileSystem.WriteAllText(
            String.Format(path, (index + 1)),
            String.Join(Environment.NewLine, lines),
            False
        )
    End Sub
)