[.NET] 想把CSV档案放进table,出现outofmemory

楼主: earlywinter (earlywinter)   2019-08-24 18:56:07
请输入专案类型(网站专案或者应用程式专案):
Dim reader As System.I.Directoryo.StreamReader
Dim line As String = Nothing
Dim value As String()
Dim db = New DataTable()
Dim dv = new DataView()
With System.Io.Directory.GetFileSystemEntries("D:\省略")
ShowLog("TotalFile:",.Length)
For j =0 To .Length-1
ShowLog("Files:",j+1,"/",.Length)
Dim fname As String=.GetValue(j)
reader = New System.IO.StreamReader(fname)
Do while reader.peek()<> -1
line =reader.Readline()
line =line.TriEnd()
value =line.spilt(",")'跑到一半会跳出System.outofMemory错误
if value.Length >4 And line.Contains("Time")
dt.Rows.Add(value(0),value(1),value(2),value(3))
End if
Loop
End with
(一)因为同之程式我有跑另外一个资料夹档案过,改的地方只有取的一些规则而已
可以顺利跑完,虽然档案数跟里面内容有差异。
(二)有什么写法能解决方法吗?
作者: evil2004 (忘却深渊)   2019-08-26 12:48:00
是不是有参考什么32位元的dll档?然后CSV档很大吗?另外如果是档案数量多的话 reader没close可能也是问题
作者: feobzq (0.0)   2019-08-26 13:32:00
可以先加个counter配合try catch检查是哪一行出错看看
作者: johnpage (johnpage)   2019-09-17 17:12:00
档案大于2G,请改64位元处理

Links booklink

Contact Us: admin [ a t ] ucptt.com