2014-09-26 40 views
-1

我該如何才能在列表框中獲取15,000行並將它們以100行爲增量保存到文件夾中的其他文本文件。因此,我的列表框的前100行將被保存到100行的文件夾/ List1.txt中,依此類推。15,000行列表框以增量保存

+0

For loop .......? – OneFineDay 2014-09-26 05:15:41

回答

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) 

運行for循環parallel是你跳過(index * 100),並採取100。將結果寫入(新)文件。

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 
)