作者earlywinter (earlywinter)
看板Visual_Basic
标题[.NET] 想把CSV档案放进table,出现outofmemory
时间Sat Aug 24 18:56:07 2019
请输入专案类型(网站专案或者应用程式专案):
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
(一)因为同之程式我有跑另外一个资料夹档案过,改的地方只有取的一些规则而已
可以顺利跑完,虽然档案数跟里面内容有差异。
(二)有甚麽写法能解决方法吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 211.22.148.139 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Visual_Basic/M.1566644169.A.9FA.html
1F:→ evil2004: 是不是有参考什麽32位元的dll档? 08/26 12:48
2F:→ evil2004: 然後CSV档很大吗? 08/26 12:49
3F:→ evil2004: 另外如果是档案数量多的话 reader没close可能也是问题 08/26 13:01
4F:→ feobzq: 可以先加个counter配合try catch检查是哪一行出错看看 08/26 13:32
5F:推 johnpage: 档案大於2G,请改64位元处理 09/17 17:12